llvm-project/lld
Rafael Espindola 4fc6044a5e Split the creation of program headers in a few steps.
IMHO this makes the code easier to read and should help with linker
scripts.

This is strongly based on D16575. The main differences are:

We record a range of sections, not every section in a program header.

scanHeaders takes case of deciding what goes in every program header,
including PT_GNU_RELRO

We create dummy sections for the start of the file

With this, program header creation has 3 isolated stages:

Map sections to program headers.
Assign addresses to *sections*
Looking at sections find the address and size of each program header.

Thanks to George Rimar for the initial version.

llvm-svn: 260453
2016-02-10 22:43:13 +00:00
..
COFF Update for LLVM function name change. 2016-01-14 20:53:50 +00:00
ELF Split the creation of program headers in a few steps. 2016-02-10 22:43:13 +00:00
cmake/modules
docs getting_started.rst: fix 'unknown target name' error 2016-01-27 17:54:35 +00:00
include/lld Use __nl_symbol_ptr instead of __got in the stubs pass on x86 archs. 2016-02-09 20:11:17 +00:00
lib Use ArrayRef instead of deep copies of CompactUnwindEntries. NFC. 2016-02-10 21:32:24 +00:00
test [ELF][MIPS] Add lazy relocation support for MIPS 2016-02-10 19:57:19 +00:00
tools Rename ld.lld2 to ld.lld since it is the default. 2015-11-18 06:11:01 +00:00
unittests Add support for export_dynamic cmdline option and behaviour. 2016-01-22 21:13:24 +00:00
.arcconfig Update Phabricator server. 2014-04-07 04:52:24 +00:00
.clang-format Remove redundant "Standard: Cpp11" tag. The LLVM style has used the 2014-07-04 12:08:03 +00:00
.gitignore Update .gitignore to ignore hidden MacOSX Finder droppings 2014-07-16 21:01:17 +00:00
CMakeLists.txt Set CMake ADDITIONAL_HEADER_DIRS on libraries with headers in /include. NFC. 2016-01-07 00:14:09 +00:00
CODE_OWNERS.TXT Add initial CODE_OWNERS.TXT file 2015-07-25 00:44:37 +00:00
LICENSE.TXT Update copyright year to 2015. 2015-03-12 20:14:35 +00:00
README.md

README.md

LLVM Linker (lld)

This directory and its subdirectories contain source code for the LLVM Linker, a modular cross platform linker which is built as part of the LLVM compiler infrastructure project.

lld is open source software. You may freely distribute it under the terms of the license agreement found in LICENSE.txt.