diff options
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()); |