aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2025-01-28 16:06:01 -0800
committerGitHub <noreply@github.com>2025-01-28 16:06:01 -0800
commit617278e7b0c937fccbf7d67d14f053c3409bc33f (patch)
tree7fd3805815640b71b1f52de2d6988aced879b2e5 /clang/lib/Frontend/CompilerInvocation.cpp
parent28507ac62928d79f647804de4df60409b3ebb364 (diff)
downloadllvm-617278e7b0c937fccbf7d67d14f053c3409bc33f.zip
llvm-617278e7b0c937fccbf7d67d14f053c3409bc33f.tar.gz
llvm-617278e7b0c937fccbf7d67d14f053c3409bc33f.tar.bz2
[lld][WebAssembly] Fix for shared library symbols WRT replacing lazy symbols (#124619)
The rule here, which I'm copying from the ELF linker, is that shared library symbols should take presence, unless the symbol has already be extracted from the archive. e.g: ``` $ wasm-ld foo.a foo.so ref.o // .so wins $ wasm-ld foo.a ref.o foo.so // .a wins ``` In the first case the shared library takes precedence because the lazy symbol is replaced by the .so symbol before it is extracted from the archive. In the second example the ref.o file causes the archive to be exracted before the .so file is processed, so in that case the archive file wins. Fixes: https://github.com/emscripten-core/emscripten/issues/23501
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions