llvm-capstone/lld
Han Shen 6c0881c3cd Mitigate relocation overflow [part 1 of 2].
This CL is to mitigate R_X86_64_PC32 relocation overflow problems for huge binaries that has near 4G allocated sections.

By examining those binaries, there're 2 issues contributes to the problem:
1). huge ".dynsym" and ".dynstr" stands in the way between .rodata and .text
2). _init_array_start/end are placed at 0 if no ".init_array" presents, this causes .text relocation against them become more prone to overflow.

This CL addresses 1st problem (the 2nd will be addressed in another CL.) by assigning a smaller sortrank to .dynsym and .dynstr thus they no longer stand in between.

llvm-svn: 332038
2018-05-10 20:44:42 +00:00
..
cmake/modules [CMake] Properly conditionalize installation of lld libraries 2018-03-09 13:09:36 +00:00
COFF COFF: Don't create unnecessary thunks. 2018-05-10 19:01:28 +00:00
Common Rename to match an LLVM change 2018-04-11 18:49:41 +00:00
docs [WebAssembly] Remove final -wasm component of target triple. NFC. 2018-05-10 17:59:41 +00:00
ELF Mitigate relocation overflow [part 1 of 2]. 2018-05-10 20:44:42 +00:00
include/lld Migrate from std::pointer_to_unary_function as it is removed in C++17 2018-04-28 00:12:02 +00:00
lib Fix build broken by llvm r327486 2018-03-14 09:57:52 +00:00
MinGW [MinGW] Add support for the GNU ld flag --kill-at 2018-03-14 20:17:24 +00:00
test Mitigate relocation overflow [part 1 of 2]. 2018-05-10 20:44:42 +00:00
tools/lld Define InitLLVM to do common initialization all at once. 2018-04-13 18:26:06 +00:00
unittests [CMake] Use PRIVATE in target_link_libraries for executables 2017-12-05 21:49:56 +00:00
utils Add a script to run various benchmarks and send the result to lnt. 2017-11-14 16:40:30 +00:00
wasm [WebAssembly] Add a flag to control merging data segments 2018-05-10 18:23:51 +00:00
.arcconfig [lld] Set up .arcconfig to point to new Diffusion LLD repository 2017-12-06 20:56:23 +00:00
.clang-format
.gitignore
CMakeLists.txt [WebAssembly] Initial wasm linker implementation 2017-11-17 18:14:09 +00:00
CODE_OWNERS.TXT [WebAssembly] Initial wasm linker implementation 2017-11-17 18:14:09 +00:00
LICENSE.TXT
README.md Note that the test .tar.xz has been updated. 2017-12-22 19:37:32 +00:00

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.