This is an archive of the discontinued LLVM Phabricator instance.

[PATCH] [ELF/AArch64] Initial General-dynamic TLS support
ClosedPublic

Authored by zatrazz on Jun 30 2015, 10:20 AM.

Details

Summary

This patch adds initial general-dynamic TLS support for AArch64. Currently
no optimization is done to realx for more performance-wise models (initial-exec
or local-exec). This patch also only currently handles correctly executable
generation, although priliminary DSO support through PLT specific creation
is also added.

With this change clang/llvm bootstrap with lld is possible in static configuration
(some DSO creation fails due missing Linker script support, not AArch64 specific),
although make check also shows some issues.

Diff Detail

Event Timeline

zatrazz updated this revision to Diff 28796.Jun 30 2015, 10:20 AM
zatrazz retitled this revision from to [PATCH] [ELF/AArch64] Initial General-dynamic TLS support.
zatrazz updated this object.
zatrazz edited the test plan for this revision. (Show Details)
zatrazz added reviewers: ruiu, shankar.easwaran.
zatrazz added a project: lld.
zatrazz added subscribers: lld, Unknown Object (MLST).
shankarke accepted this revision.Jun 30 2015, 6:13 PM
shankarke added a reviewer: shankarke.
shankarke added a subscriber: shankarke.
shankarke added inline comments.
lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.cpp
433–434

Can you remove these inline comments ?

This revision is now accepted and ready to land.Jun 30 2015, 6:13 PM

In fact ISA states this check should be made, I will uncomment it.

ruiu added inline comments.Jul 1 2015, 2:06 PM
lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.cpp
438

Please don't leave code commented out.

lib/ReaderWriter/ELF/AArch64/AArch64RelocationPass.cpp
99

Use array_lengthof instead of 16.

126

Ditto

zatrazz closed this revision.Jul 3 2015, 8:08 AM