[PATCH] D32336: [ELF] Account for R_386_TLS_LDO_32 addend
Shoaib Meenai via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 20 21:57:38 PDT 2017
smeenai created this revision.
This relocation type has an implicit addend. Account for it when
processing the relocation. Add an offset to an existing test to ensure
it gets processed correctly.
Fixes PR32634.
https://reviews.llvm.org/D32336
Files:
ELF/Target.cpp
test/ELF/tls-dynamic-i686.s
Index: test/ELF/tls-dynamic-i686.s
===================================================================
--- test/ELF/tls-dynamic-i686.s
+++ test/ELF/tls-dynamic-i686.s
@@ -25,7 +25,7 @@
.align 4
tls2:
.long 0
- .size tls2, 4
+ .size tls2, 8
.section .text
.globl _start
@@ -42,7 +42,7 @@
leal tls2 at tlsldm(%ebx),%eax
call __tls_get_addr at plt
-leal tls2 at dtpoff(%eax),%edx
+leal tls2 at dtpoff+4(%eax),%edx
movl %gs:0,%eax
addl tls0 at gotntpoff(%ebx),%eax
@@ -91,7 +91,7 @@
// DIS-NEXT: 1023: 8d 90 08 00 00 00 leal 8(%eax), %edx
// DIS-NEXT: 1029: 8d 83 f0 ff ff ff leal -16(%ebx), %eax
// DIS-NEXT: 102f: e8 3c 00 00 00 calll 60
-// DIS-NEXT: 1034: 8d 90 08 00 00 00 leal 8(%eax), %edx
+// DIS-NEXT: 1034: 8d 90 0c 00 00 00 leal 12(%eax), %edx
// Initial exec model:
// DIS-NEXT: 103a: 65 a1 00 00 00 00 movl %gs:0, %eax
// DIS-NEXT: 1040: 03 83 f8 ff ff ff addl -8(%ebx), %eax
Index: ELF/Target.cpp
===================================================================
--- ELF/Target.cpp
+++ ELF/Target.cpp
@@ -532,6 +532,7 @@
case R_386_GOTPC:
case R_386_PC32:
case R_386_PLT32:
+ case R_386_TLS_LDO_32:
case R_386_TLS_LE:
return SignExtend64<32>(read32le(Buf));
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D32336.96093.patch
Type: text/x-patch
Size: 1203 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170421/716f5f67/attachment.bin>
More information about the llvm-commits
mailing list