[COFF] Respect weak externals for mangled symbol searching
authorShoaib Meenai <smeenai@fb.com>
Sat, 10 Dec 2022 04:09:56 +0000 (20:09 -0800)
committerShoaib Meenai <smeenai@fb.com>
Mon, 12 Dec 2022 18:52:31 +0000 (10:52 -0800)
commit72b2ca5d0641be5202691728f50ec4b13b5f0634
treea39a1d84dc62037fb9935cff0d2076095438bf61
parent658dc6ee99850c0e1ab8f9424e4c56abddde9a19
[COFF] Respect weak externals for mangled symbol searching

We were previously ignoring weak externals during these searches (which
are used for the entry point, exports, and subsystem inference), which
differed from link.exe behavior. It also meant that we could get
different behavior when linking an object file directly vs. packaging it
into a static library, because static library symbol name directories
include weak externals.

Reviewed By: mstorsjo, yozhu

Differential Revision: https://reviews.llvm.org/D139764
lld/COFF/SymbolTable.cpp
lld/test/COFF/entry-weak-external.s [new file with mode: 0644]
lld/test/COFF/subsystem-inference-weak-external.s [new file with mode: 0644]