diff options
author | Fangrui Song <maskray@google.com> | 2020-06-01 11:27:53 -0700 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2020-06-01 11:30:03 -0700 |
commit | 751f18e7d46dbb53f62c4c567e331b9bc87febf6 (patch) | |
tree | d9960e77b5aeaa0768cb6c0c611f15a03e64c1a2 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 26ebe936f3ba63a2365f660509026e11fa0d695a (diff) | |
download | llvm-751f18e7d46dbb53f62c4c567e331b9bc87febf6.zip llvm-751f18e7d46dbb53f62c4c567e331b9bc87febf6.tar.gz llvm-751f18e7d46dbb53f62c4c567e331b9bc87febf6.tar.bz2 |
[ELF] Refine --export-dynamic-symbol semantics to be compatible GNU ld 2.35
GNU ld from binutils 2.35 onwards will likely support
--export-dynamic-symbol but with different semantics.
https://sourceware.org/pipermail/binutils/2020-May/111302.html
Differences:
1. -export-dynamic-symbol is not supported
2. --export-dynamic-symbol takes a glob argument
3. --export-dynamic-symbol can suppress binding the references to the definition within the shared object if (-Bsymbolic or -Bsymbolic-functions)
4. --export-dynamic-symbol does not imply -u
I don't think the first three points can affect any user.
For the fourth point, Not implying -u can lead to some archive members unfetched.
Add -u foo to restore the previous behavior.
Exact semantics:
* -no-pie or -pie: matched non-local defined symbols will be added to the dynamic symbol table.
* -shared: matched non-local STV_DEFAULT symbols will not be bound to definitions within the shared object
even if they would otherwise be due to -Bsymbolic, -Bsymbolic-functions, or --dynamic-list.
Reviewed By: psmith
Differential Revision: https://reviews.llvm.org/D80487
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions