summaryrefslogtreecommitdiffstats
path: root/lld/ELF/Writer.cpp
diff options
context:
space:
mode:
authorMichael J. Spencer <bigcheesegs@gmail.com>2015-11-03 22:39:09 +0000
committerMichael J. Spencer <bigcheesegs@gmail.com>2015-11-03 22:39:09 +0000
commitd77f0d2526e28611b09121324540e8faaa5cab1a (patch)
tree3f48354bb665064aff8c66de78cac0ab8efab906 /lld/ELF/Writer.cpp
parent3bd1def3ecd425757373b44b01675eb1397bd58e (diff)
downloadbcm5719-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.cpp4
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());
OpenPOWER on IntegriCloud