llvm-project/lld/docs
Fangrui Song 0264950697 [ELF] Add -z separate-loadable-segments to complement separate-code and noseparate-code
D64906 allows PT_LOAD to have overlapping p_offset ranges. In the
default R RX RW RW layout + -z noseparate-code case, we do not tail pad
segments when transiting to another segment. This can save at most
3*maxPageSize bytes.

a) Before D64906, we tail pad R, RX and the first RW.
b) With -z separate-code, we tail pad R and RX, but not the first RW (RELRO).

In some cases, b) saves one file page. In some cases, b) wastes one
virtual memory page. The waste is a concern on Fuchsia. Because it uses
compressed binaries, it doesn't benefit from the saved file page.

This patch adds -z separate-loadable-segments to restore the behavior before
D64906. It can affect section addresses and can thus be used as a
debugging mechanism (see PR43214 and ld.so partition bug in
crbug.com/998712).

Reviewed By: jakehehrlich, ruiu

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

llvm-svn: 372807
2019-09-25 03:39:31 +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 Fix some sphinx doc errors. 2019-02-01 17:06:41 +00:00
Partitions.rst docs: Update partitioning docs now that the feature is fully landed. 2019-06-07 19:23:19 +00:00
README.txt [WebAssembly] Update docs 2018-11-29 02:55:25 +00:00
Readers.rst key method -> key function 2018-12-21 22:40:10 +00:00
ReleaseNotes.rst lld-link: Add a flag /lldignoreenv that makes lld-link ignore env vars. 2019-09-13 13:13:52 +00:00
WebAssembly.rst [WebAssembly] Implement NO_STRIP 2019-08-29 22:41:05 +00:00
conf.py Bump the trunk version to 10.0.0svn 2019-07-18 11:51:05 +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 Adjust documentation for git migration. 2019-01-29 16:37:27 +00:00
hello.png Partially revert r287009: Remove trailing whitespace. 2016-11-15 19:09:13 +00:00
index.rst Add IR support, ELF section and user documentation for partitioning feature. 2019-05-29 03:29:01 +00:00
ld.lld.1 [ELF] Add -z separate-loadable-segments to complement separate-code and noseparate-code 2019-09-25 03:39:31 +00:00
make.bat
missingkeyfunction.rst Fix two sphinx warnings 2019-04-11 07:31:03 +00:00
open_projects.rst lld/include/lld/Core/TODO.txt 2019-01-14 00:45:27 +00:00
partitions.dot Add IR support, ELF section and user documentation for partitioning feature. 2019-05-29 03:29:01 +00:00
partitions.svg Add IR support, ELF section and user documentation for partitioning feature. 2019-05-29 03:29:01 +00:00
sphinx_intro.rst [Docs] Modernize references to macOS 2019-05-30 16:46:22 +00:00
windows_support.rst lld/include/lld/Core/TODO.txt 2019-01-14 00:45:27 +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.

See sphinx_intro.rst for more details.