HomeFreeBSD

MFC r344444:

Description

MFC r344444:

Pull in r353299 from upstream lld trunk (by George Rimar):

Recommit r353293 "[LLD][ELF] - Set DF_STATIC_TLS flag for i386 target."

With the following changes:
1) Compilation fix:
std::atomic<bool> HasStaticTlsModel = false; ->
std::atomic<bool> HasStaticTlsModel{false};

2) Adjusted the comment in code.

Initial commit message:

DF_STATIC_TLS flag indicates that the shared object or executable
contains code using a static thread-local storage scheme.

Patch checks if IE/LE relocations were used to check if the code uses
a static model. If so it sets the DF_STATIC_TLS flag.

Differential revision: https://reviews.llvm.org/D57749

Pull in r353378 from upstream lld trunk (by George Rimar):

[LLD][ELF] - Set DF_STATIC_TLS flag for X64 target

This is the same as D57749, but for x64 target.

"ELF Handling For Thread-Local Storage" p41 says
(https://www.akkadia.org/drepper/tls.pdf):
R_X86_64_GOTTPOFF relocation is used for IE TLS models.
Hence if linker sees this relocation we should add DF_STATIC_TLS flag.

Differential revision: https://reviews.llvm.org/D57821

This adds support to lld for the DF_STATIC_TLS flag in shared objects,
which signals to the dynamic linker that the shared object requires
static thread local storage.

See also: https://reviews.freebsd.org/D19072

Details

Provenance
dimAuthored on
Parents
rS344654: cxgbe(4): Request high priority filter support explicitly, as required
Branches
Unknown
Tags
Unknown