Implement R_X86_64_DTPOFF32.
authorRafael Espindola <rafael.espindola@gmail.com>
Thu, 28 Oct 2010 15:11:03 +0000 (15:11 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Thu, 28 Oct 2010 15:11:03 +0000 (15:11 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117548 91177308-0d34-0410-b5e6-96231b3b80d8

lib/MC/ELFObjectWriter.cpp
test/MC/ELF/relocation.s

index 35f3f104c5b2ef74b3e602e763ac787facbb2e04..b979de9322ce728f9b5942da07f38a5d750ea338 100644 (file)
@@ -728,6 +728,9 @@ void ELFObjectWriterImpl::RecordRelocation(const MCAssembler &Asm,
         case MCSymbolRefExpr::VK_TPOFF:
           Type = ELF::R_X86_64_TPOFF32;
           break;
+        case MCSymbolRefExpr::VK_DTPOFF:
+          Type = ELF::R_X86_64_DTPOFF32;
+          break;
         }
         break;
       case FK_Data_4:
index 546d89c1eca9fc3cfd60967b508697176bca5d43..8d38b86c34c3940f61e0b09eadea6504f47e49a5 100644 (file)
@@ -13,6 +13,7 @@ bar:
         leaq   foo@TLSGD(%rip), %rax    # R_X86_64_TLSGD
         leaq   foo@TPOFF(%rax), %rax    # R_X86_64_TPOFF32
         leaq   foo@TLSLD(%rip), %rdi    # R_X86_64_TLSLD
+        leaq   foo@DTPOFF(%rax), %rcx   # R_X86_64_DTPOFF32
 
 // CHECK:  # Section 0x00000001
 // CHECK: (('sh_name', 0x00000001) # '.text'
@@ -83,3 +84,9 @@ bar:
 // CHECK-NEXT:   ('r_sym', 0x00000006)
 // CHECK-NEXT:   ('r_type', 0x00000014)
 // CHECK-NEXT:   ('r_addend', 0xfffffffc)
+
+// CHECK:  # Relocation 0x0000000a
+// CHECK-NEXT:  (('r_offset', 0x00000049)
+// CHECK-NEXT:   ('r_sym', 0x00000006)
+// CHECK-NEXT:   ('r_type', 0x00000015)
+// CHECK-NEXT:   ('r_addend', 0x00000000)