[PATCH] D18330: [ELF/AArch64] Implemented set of R_AARCH64_TLSDESC_* relocations.
Adhemerval Zanella via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 23 11:17:32 PDT 2016
zatrazz added inline comments.
Comment at: ELF/InputSection.cpp:275
@@ +274,3 @@
+ // compute the value of the two words of the TLS descriptor.
+ // Overall design can be found in
+ // "Thread-Local Storage Descriptors for IA32 and AMD64/EM64T"
> Maybe mention "is based on" or such to make it clear this wasn't accidentally copied and pasted from X86-specific stuff.
// TLS descriptor uses two words in the .got.plt which describes a structure
// of a function pointer and its arguments. Both fields will be adjusted at
// runtime by the dynamic loader with a single relocation (usually
Comment at: ELF/OutputSections.cpp:293
@@ +292,3 @@
+ // Tail here is amount of such special relocations.
+ Relocs.insert(Relocs.end() - Tail, Reloc);
> I wonder if there's a nicer way to handle this?
I though about this, but I think to remove the Tail it would require to maintain two or move relocation vectors (one for normal and another for tlsdesc) and this will just add more complexity IMHO.
However we might change in later if this shows to be a performance issue.
Comment at: ELF/OutputSections.h:179
@@ -170,2 +178,3 @@
Off_GotPlt, // The got.plt entry of Sym.
Off_Bss, // The bss entry of Sym (copy reloc).
I think it would be better to change to Off_GotPltTlsdesc and add a comment such 'the got.plt entry for a tlsdesc Sym'.
More information about the llvm-commits