llvm-project/lld/docs
Ali Tamur 63830b2794 Introduce a flag to warn when ifunc symbols are used with text relocations.
Summary:
This patch adds a new flag, --warn-ifunc-textrel, to work around a glibc bug. When a code with ifunc symbols is used to produce an object file with text relocations, lld always succeeds. However, if that object file is linked using an old version of glibc, the resultant binary just crashes with segmentation fault when it is run (The bug is going to be corrected as of glibc 2.19).

Since there is no way to tell beforehand what library the object file will be linked against in the future, there does not seem to be a fool-proof way for lld to give an error only in cases where the binary will crash. So, with this change (dated 2018-09-25), lld starts to give a warning, contingent on a new command line flag that does not have a gnu counter part. The default value for --warn-ifunc-textrel is false, so lld behaviour will not change unless the user explicitly asks lld to give a warning. Users that link with a glibc library with version 2.19 or newer, or does not use ifunc symbols, or does not generate object files with text relocations do not need to take any action. Other users may consider to start passing warn-ifunc-textrel to lld to get early warnings.

Reviewers: ruiu, espindola

Reviewed By: ruiu

Subscribers: grimar, MaskRay, markj, emaste, arichardson, llvm-commits

Differential Revision: https://reviews.llvm.org/D52430

llvm-svn: 343628
2018-10-02 20:30:22 +00:00
..
_static
_templates Fixed link to bugzilla in the sidebar 2017-11-08 10:10:31 +00:00
llvm-theme Partially revert r287009: Remove trailing whitespace. 2016-11-15 19:09:13 +00:00
AtomLLD.rst Add notes about the scope of the documents. 2017-02-24 04:31:08 +00:00
CMakeLists.txt docs: Fix Sphinx detection with out-of-tree builds 2017-05-09 01:43:22 +00:00
Driver.rst Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
NewLLD.rst [docs] Formatting-only change 2017-12-05 23:28:04 +00:00
README.txt Revert "[WebAssembly] Update docs" 2018-09-27 00:42:49 +00:00
Readers.rst Add notes about the scope of the documents. 2017-02-24 04:31:08 +00:00
ReleaseNotes.rst Correct RISC-V link in release notes 2018-09-24 14:47:56 +00:00
WebAssembly.rst Revert "[WebAssembly] Update docs" 2018-09-27 00:42:49 +00:00
conf.py Update docs version and clear release notes after 8.0.0 version bump 2018-08-01 14:07:20 +00:00
design.rst Add notes about the scope of the documents. 2017-02-24 04:31:08 +00:00
development.rst Add notes about the scope of the documents. 2017-02-24 04:31:08 +00:00
getting_started.rst getting_started.rst: fix 'unknown target name' error 2016-01-27 17:54:35 +00:00
hello.png Partially revert r287009: Remove trailing whitespace. 2016-11-15 19:09:13 +00:00
index.rst index.rst: pe/coff does support pdbs now 2018-07-31 12:00:26 +00:00
ld.lld.1 Introduce a flag to warn when ifunc symbols are used with text relocations. 2018-10-02 20:30:22 +00:00
make.bat
open_projects.rst Remove links to deleted TODOs. 2016-04-16 11:11:56 +00:00
sphinx_intro.rst [docs] Update doc building instructions 2017-12-05 23:31:26 +00:00
windows_support.rst windows_support.rst: Add links for downloading 2018-07-31 12:02:03 +00:00

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.

To rebuild documents into html:

   [/lld/docs]> make html