llvm-project/lld/wasm
Sam Clegg b0f18af30b [lld][WebAssemby] Demote LazySymbols back to undefined symbols if they are not loaded
A LazySymbol is one that lives in `.a` archive and gets pulled in by a
strong reference.  However, weak references to such symbols do not
result in them be loaded from the archive.  In this case we want to
treat such symbols at undefined rather then lazy, once symbols
resolution is complete.

This fixes a crash bug in the linker when weakly referenced symbol that
lives in an archive file is live at the end of the link.  In the case of
dynamic linking this is expected to turn into an import with (in the
case of a function symbol) a function index.

Differential Revision: https://reviews.llvm.org/D130736
2022-07-29 13:53:54 -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][WebAssemby] Demote LazySymbols back to undefined symbols if they are not loaded 2022-07-29 13:53:54 -07:00
InputChunks.cpp [lld] Use value_or instead of getValueOr (NFC) 2022-06-19 00:29:41 -07:00
InputChunks.h Use value instead of getValue (NFC) 2022-07-15 20:03:13 -07:00
InputElement.h Use value instead of getValue (NFC) 2022-07-15 20:03:13 -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][WebAssemby] Demote LazySymbols back to undefined symbols if they are not loaded 2022-07-29 13:53:54 -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 [lld][WebAssemby] Demote LazySymbols back to undefined symbols if they are not loaded 2022-07-29 13:53:54 -07:00
SyntheticSections.cpp [lld] Use value_or instead of getValueOr (NFC) 2022-06-19 00:29:41 -07:00
SyntheticSections.h Use any_of (NFC) 2022-07-22 01:05:17 -07:00
Writer.cpp Use value instead of getValue (NFC) 2022-07-15 20:03:13 -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