Fangrui Song a2359a865a
[ELF] Fix PROVIDE_HIDDEN -shared regression with bitcode file references
The inaccurate #111945 condition fixes a PROVIDE regression (#111478)
but introduces another regression: in a DSO link, if a symbol referenced
only by bitcode files is defined as PROVIDE_HIDDEN, lld would not set
the visibility correctly, leading to an assertion failure in
DynamicReloc::getSymIndex (https://reviews.llvm.org/D123985).
This is because `(sym->isUsedInRegularObj || sym->exportDynamic)` is
initially false (bitcode undef does not set `isUsedInRegularObj`) then
true (in `addSymbol`, after LTO compilation).

Fix this by making the condition accurate: use a map to track defined
symbols.

Reviewers: smithp35

Reviewed By: smithp35

Pull Request: https://github.com/llvm/llvm-project/pull/112386
2024-10-15 09:20:10 -07:00
..
2024-08-30 10:50:56 -04:00
2023-05-02 09:34:48 +08:00
2023-08-21 09:11:51 -07:00
2024-01-22 09:09:46 -08:00
2024-07-28 12:38:10 -07:00
2022-08-15 18:49:02 -04:00
2023-07-18 17:57:31 -07:00
2022-08-02 09:52:31 -04:00
2024-06-14 23:20:50 -07:00
2023-07-25 17:06:07 +08:00
2023-07-25 17:06:07 +08:00
2022-10-24 10:54:09 -07:00
2024-09-16 13:12:45 -07:00
2023-07-18 17:57:31 -07:00
2024-04-19 09:09:41 -07:00
2024-05-15 15:41:20 -07:00
2024-07-15 10:39:23 +02:00
2022-10-24 10:54:09 -07:00
2024-07-31 12:57:23 -07:00