[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
diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp
index 4f8f623..fe87d92 100644
--- a/lld/ELF/Writer.cpp
+++ b/lld/ELF/Writer.cpp
@@ -716,8 +716,10 @@
     }
 
     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());