forked from OSchip/llvm-project
![]() See `docs/ELF/linker_script.rst` for the new computation for sh_addr and sh_addralign. `ALIGN(section_align)` now means: "increase alignment to section_align" (like yet another input section requirement). The "start of section .foo changes from 0x11 to 0x20" warning no longer makes sense. Change it to warn if sh_addr%sh_addralign!=0. To decrease the alignment from the default max_input_align, use `.output ALIGN(8) : {}` instead of `.output : ALIGN(8) {}` See linkerscript/section-address-align.test as an example. When both an output section address and ALIGN are set (can be seen as an "undefined behavior" https://sourceware.org/ml/binutils/2020-03/msg00115.html), lld may align more than GNU ld, but it makes a linker script working with GNU ld hard to break with lld. This patch can be considered as restoring part of the behavior before D74736. Differential Revision: https://reviews.llvm.org/D75724 |
||
---|---|---|
.. | ||
COFF | ||
Common | ||
ELF | ||
MinGW | ||
cmake/modules | ||
docs | ||
include/lld | ||
lib | ||
test | ||
tools/lld | ||
unittests | ||
utils | ||
wasm | ||
.clang-format | ||
.clang-tidy | ||
.gitignore | ||
CMakeLists.txt | ||
CODE_OWNERS.TXT | ||
LICENSE.TXT | ||
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.
Benchmarking
In order to make sure various developers can evaluate patches over the same tests, we create a collection of self contained programs.
It is hosted at https://s3-us-west-2.amazonaws.com/linker-tests/lld-speed-test.tar.xz
The current sha256 is 10eec685463d5a8bbf08d77f4ca96282161d396c65bd97dc99dbde644a31610f.