forked from OSchip/llvm-project
232578804a
D77522 changed --warn-backrefs to not warn for linking sandwich problems (-ldef1 -lref -ldef2). This removed lots of false positives. However, glibc still has some problems. libc.a defines some symbols which are normally in libm.a and libpthread.a, e.g. __isnanl/raise. For a linking order `-lm -lpthread -lc`, I have seen: ``` // different resolutions: GNU ld/gold select libc.a(s_isnan.o) as the definition backward reference detected: __isnanl in libc.a(printf_fp.o) refers to libm.a(m_isnanl.o) // different resolutions: GNU ld/gold select libc.a(raise.o) as the definition backward reference detected: raise in libc.a(abort.o) refers to libpthread.a(pt-raise.o) ``` To facilitate deployment of --warn-backrefs, add --warn-backrefs-exclude= so that certain known issues (which may be impractical to fix) can be whitelisted. Deliberate choices: * Not a comma-separated list (`--warn-backrefs-exclude=liba.a,libb.a`). -Wl, splits the argument at commas, so we cannot use commas. --export-dynamic-symbol is similar. * Not in the style of `--warn-backrefs='*' --warn-backrefs=-liba.a`. We just need exclusion, not inclusion. For easier build system integration, we should avoid order dependency. With the current scheme, we enable --warn-backrefs, and indivial libraries can add --warn-backrefs-exclude=<glob> to their LDFLAGS. Reviewed By: psmith Differential Revision: https://reviews.llvm.org/D77512 |
||
---|---|---|
.. | ||
ELF | ||
_static | ||
_templates | ||
llvm-theme | ||
AtomLLD.rst | ||
CMakeLists.txt | ||
Driver.rst | ||
NewLLD.rst | ||
Partitions.rst | ||
README.txt | ||
Readers.rst | ||
ReleaseNotes.rst | ||
WebAssembly.rst | ||
conf.py | ||
design.rst | ||
development.rst | ||
getting_started.rst | ||
hello.png | ||
index.rst | ||
ld.lld.1 | ||
make.bat | ||
missingkeyfunction.rst | ||
open_projects.rst | ||
partitions.dot | ||
partitions.svg | ||
sphinx_intro.rst | ||
windows_support.rst |
README.txt
lld Documentation ================= The lld documentation is written using the Sphinx documentation generator. It is currently tested with Sphinx 1.1.3. We currently use the 'nature' theme and a Beaker inspired structure. See sphinx_intro.rst for more details.