llvm-project/lld/wasm
Sam Clegg 53217ecb88 [lld][WebAssembly] Don't apply data relocations at static constructor time
Instead, export `__wasm_apply_data_relocs` and `__wasm_call_ctors`
separately.

This is required since user code in a shared library (such as static
constructors) should not be run until relocations have been applied to
all loaded libraries.

See: https://github.com/emscripten-core/emscripten/issues/17295

Differential Revision: https://reviews.llvm.org/D128515
2022-06-27 15:50:02 -07:00
..
CMakeLists.txt Reland: "[lld][WebAssembly] Initial support merging string data" 2021-05-10 16:03:38 -07:00
Config.h [lld] Remove support for legacy pass manager 2022-04-07 10:17:31 +02:00
Driver.cpp [lld][WebAssembly] Don't apply data relocations at static constructor time 2022-06-27 15:50:02 -07:00
InputChunks.cpp [lld] Use value_or instead of getValueOr (NFC) 2022-06-19 00:29:41 -07:00
InputChunks.h [lld] Don't use Optional::hasValue (NFC) 2022-06-26 19:37:14 -07:00
InputElement.h Revert "Don't use Optional::hasValue (NFC)" 2022-06-25 11:56:50 -07:00
InputFiles.cpp Don't use Optional::hasValue (NFC) 2022-06-20 11:33:56 -07:00
InputFiles.h [MC][WebAssembly] Fix crash when relocation addend underlows U32 2022-02-25 07:13:15 -08:00
LTO.cpp [lld] Remove support for legacy pass manager 2022-04-07 10:17:31 +02:00
LTO.h
MapFile.cpp Rename parallelForEachN to just parallelFor 2022-06-19 17:49:00 -04:00
MapFile.h [lld][WebAssembly] Add initial support for -Map/--print-map 2020-09-12 16:10:51 -07:00
MarkLive.cpp Revert D126950 "[lld][WebAssembly] Retain data segments referenced via __start/__stop" 2022-06-03 22:18:06 -07:00
MarkLive.h
Options.td [lld][WebAssembly] Require double dash for modern linker flags 2022-05-26 14:42:52 -07:00
OutputSections.cpp [lld] Use value_or instead of getValueOr (NFC) 2022-06-19 00:29:41 -07:00
OutputSections.h [lld][WebAssembly] Cleanup output of --verbose 2021-09-10 11:35:50 -04:00
OutputSegment.cpp [lld][WebAssembly] Remove unnecessary accessor methods. NFC 2022-06-03 11:43:44 -07:00
OutputSegment.h [lld][WebAssembly] Initialize bss segments using memory.fill 2021-10-28 17:15:08 -07:00
Relocations.cpp [lld][WebAssembly] Add --unresolved-symbols=import-dynamic 2022-03-15 15:10:21 -07:00
Relocations.h
SymbolTable.cpp [lld][WebAssembly] Fix crash on undefined+weak function syms in LTO objects 2022-05-27 11:41:34 -07:00
SymbolTable.h [lld] Rename addCombinedLTOObjects to match ELF driver. NFC 2021-10-28 11:46:19 -07:00
Symbols.cpp [lld][WebAssembly] Avoid importing/exporting hidden symbols in shared libraries 2022-05-26 13:43:25 -07:00
Symbols.h fix comment typos to cycle bots 2022-06-19 18:34:12 -04:00
SyntheticSections.cpp [lld] Use value_or instead of getValueOr (NFC) 2022-06-19 00:29:41 -07:00
SyntheticSections.h [lld][WebAssembly] Take advantage of extended const expressions when available 2022-03-15 17:50:05 -07:00
Writer.cpp [lld][WebAssembly] Don't apply data relocations at static constructor time 2022-06-27 15:50:02 -07:00
Writer.h
WriterUtils.cpp [WebAssembly] Second phase of implemented extended const proposal 2022-03-14 08:55:47 -07:00
WriterUtils.h [WebAssembly] Second phase of implemented extended const proposal 2022-03-14 08:55:47 -07:00