diff options
author | Michael J. Spencer <bigcheesegs@gmail.com> | 2015-11-03 22:39:09 +0000 |
---|---|---|
committer | Michael J. Spencer <bigcheesegs@gmail.com> | 2015-11-03 22:39:09 +0000 |
commit | d77f0d2526e28611b09121324540e8faaa5cab1a (patch) | |
tree | 3f48354bb665064aff8c66de78cac0ab8efab906 /lld/ELF/Writer.cpp | |
parent | 3bd1def3ecd425757373b44b01675eb1397bd58e (diff) | |
download | bcm5719-llvm-d77f0d2526e28611b09121324540e8faaa5cab1a.tar.gz bcm5719-llvm-d77f0d2526e28611b09121324540e8faaa5cab1a.zip |
[elf2] Implement R_X86_64_TPOFF32.
This does not support TPOFF32 relocations to local symbols as the address calculations are separate. Support for this will be a separate patch.
llvm-svn: 251998
Diffstat (limited to 'lld/ELF/Writer.cpp')
-rw-r--r-- | lld/ELF/Writer.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp index 4f8f623c740..fe87d926067 100644 --- a/lld/ELF/Writer.cpp +++ b/lld/ELF/Writer.cpp @@ -716,8 +716,10 @@ template <class ELFT> void Writer<ELFT>::assignAddresses() { } if ((Sec->getFlags() & SHF_ALLOC) && (Sec->getFlags() & SHF_TLS)) { - if (!TlsPhdr.p_vaddr) + if (!TlsPhdr.p_vaddr) { setPhdr(&TlsPhdr, PT_TLS, PF_R, FileOff, VA, 0, Sec->getAlign()); + Out<ELFT>::TlsInitImageVA = VA; + } if (Sec->getType() != SHT_NOBITS) VA = RoundUpToAlignment(VA, Sec->getAlign()); uintX_t TVA = RoundUpToAlignment(VA + ThreadBSSOffset, Sec->getAlign()); |