llvm-capstone/lld
Fangrui Song f55e9a2d2e [PPC64] Set the number of relocations processed for R_PPC64_TLS[GL]D to 2
Summary:
R_PPC64_TLSGD and R_PPC64_TLSLD are used as markers on TLS code sequences. After GD-to-IE or GD-to-LE relaxation, the next relocation R_PPC64_REL24 should be skipped to not create a false dependency on __tls_get_addr. When linking statically, the false dependency may cause an "undefined symbol: __tls_get_addr" error.

R_PPC64_GOT_TLSGD16_HA
R_PPC64_GOT_TLSGD16_LO
R_PPC64_TLSGD R_TLSDESC_CALL
R_PPC64_REL24 __tls_get_addr

Reviewers: ruiu, sfertile, syzaara, espindola

Reviewed By: sfertile

Subscribers: emaste, nemanjai, arichardson, kbarton, jsji, llvm-commits, tamur

Tags: #llvm

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

llvm-svn: 353262
2019-02-06 02:00:24 +00:00
..
cmake/modules
COFF [PDB] Remove dots and normalize slashes with /PDBSOURCEPATH. 2019-02-06 00:50:35 +00:00
Common Fix names of functions in TargetOptionsCommandFlags.h. NFC. 2019-02-01 02:24:50 +00:00
docs [ELF] Default to --no-allow-shlib-undefined for executables 2019-02-02 00:34:28 +00:00
ELF [PPC64] Set the number of relocations processed for R_PPC64_TLS[GL]D to 2 2019-02-06 02:00:24 +00:00
include/lld Fix names of functions in TargetOptionsCommandFlags.h. NFC. 2019-02-01 02:24:50 +00:00
lib Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MinGW [MinGW] Hook up the --no-insert-timestamp option 2019-02-05 08:16:06 +00:00
test [PPC64] Set the number of relocations processed for R_PPC64_TLS[GL]D to 2 2019-02-06 02:00:24 +00:00
tools/lld Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
unittests Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
utils Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
wasm [WebAssembly] clang-tidy (NFC) 2019-02-04 19:13:46 +00:00
.arcconfig
.clang-format
.gitignore
CMakeLists.txt
CODE_OWNERS.TXT
LICENSE.TXT Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
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.