llvm-capstone/lld/wasm
Sam Clegg 73332d73e1 [lld][WebAssembly] Do not merge comdat data segments
When running in relocatable mode any input data segments that are part
of a comdat group should not be merged with other segments of the same
name.  This is because the final linker needs to keep the separate so
they can be included/excluded individually.

Often this is not a problem since normally only one section with a given
name `foo` ends up in the output object file.  However, the problem
occurs when one input contains `foo` which part of a comdat and another
object contains a local symbol `foo` we were attempting to merge them.

This behaviour matches (I believe) that of the ELF linker.  See
`LinkerScript.cpp:addInputSec`.

Fixes: https://github.com/emscripten-core/emscripten/issues/9726

Differential Revision: https://reviews.llvm.org/D101703
2021-05-03 16:43:29 -07:00
..
CMakeLists.txt [lld][WebAssembly] Add initial support for -Map/--print-map 2020-09-12 16:10:51 -07:00
Config.h [lld][WebAssembly] Add --export-if-defined 2021-04-29 10:58:45 -07:00
Driver.cpp [lld][WebAssembly] Add --export-if-defined 2021-04-29 10:58:45 -07:00
InputChunks.cpp [WebAssembly] Add new relocation for location relative data 2021-03-08 11:34:10 -08:00
InputChunks.h [lld][WebAssembly] Minor refactor in preparation for SHF_STRINGS supports. NFC. 2021-03-01 16:15:29 -08:00
InputElement.h [lld][WebAssembly] Common superclass for input globals/events/tables 2021-02-11 14:54:45 +01:00
InputFiles.cpp [lld][WebAssembly] Allow relocations against non-live global symbols 2021-04-28 10:29:41 -07:00
InputFiles.h [WebAssembly] Add new relocation for location relative data 2021-03-08 11:34:10 -08:00
LTO.cpp [LTO][wasm][NewPM] Allow using new pass manager for wasm LTO 2020-12-01 12:22:40 -08:00
LTO.h [Coding style change][lld] Rename variables for non-ELF ports 2019-07-11 05:40:30 +00:00
MapFile.cpp [lld][WebAssembly] Rename methods/members to match ELF backend. NFC. 2021-02-26 17:05:59 -08:00
MapFile.h [lld][WebAssembly] Add initial support for -Map/--print-map 2020-09-12 16:10:51 -07:00
MarkLive.cpp [lld][WebAssembly] Common superclass for input globals/events/tables 2021-02-11 14:54:45 +01:00
MarkLive.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Options.td [lld][WebAssembly] Add --export-if-defined 2021-04-29 10:58:45 -07:00
OutputSections.cpp [lld][WebAssembly] Rename methods/members to match ELF backend. NFC. 2021-02-26 17:05:59 -08:00
OutputSections.h [lld][WebAssembly] Add initial support for -Map/--print-map 2020-09-12 16:10:51 -07:00
OutputSegment.h [lld][WebAssembly] Minor refactor in preparation for SHF_STRINGS supports. NFC. 2021-03-01 16:15:29 -08:00
Relocations.cpp [lld][WebAssembly] Ensure stub symbols always get address 0 2020-11-25 18:26:34 -08:00
Relocations.h [Coding style change][lld] Rename variables for non-ELF ports 2019-07-11 05:40:30 +00:00
Symbols.cpp [lld][WebAssembly] Rename methods/members to match ELF backend. NFC. 2021-02-26 17:05:59 -08:00
Symbols.h [lld][WebAssembly] Rename methods/members to match ELF backend. NFC. 2021-02-26 17:05:59 -08:00
SymbolTable.cpp [lld][WebAssembly] -Bsymbolic creates indirect function table if needed 2021-03-04 09:28:21 +01:00
SymbolTable.h [lld][WebAssembly] -Bsymbolic creates indirect function table if needed 2021-03-04 09:28:21 +01:00
SyntheticSections.cpp [WebAssembly] Rename WasmLimits::Initial to ::Minimum. NFC. 2021-03-24 09:10:11 +01:00
SyntheticSections.h [WebAssembly][lld] Preassign table number 0 to indirect function table for MVP inputs 2021-02-12 20:20:19 +01:00
Writer.cpp [lld][WebAssembly] Do not merge comdat data segments 2021-05-03 16:43:29 -07:00
Writer.h [WebAssembly] Refactor synthetic sections and relocation processing. NFC. 2019-05-21 09:13:09 +00:00
WriterUtils.cpp [WebAssembly] Rename WasmLimits::Initial to ::Minimum. NFC. 2021-03-24 09:10:11 +01:00
WriterUtils.h [lld][WebAssembly] Common superclass for input globals/events/tables 2021-02-11 14:54:45 +01:00