summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2013-06-28 15:07:54 +0000
committerH.J. Lu <hjl.tools@gmail.com>2013-06-28 15:07:54 +0000
commitc9c3ccf2f5c2bad2516b522c6ad7cd29cc66d21c (patch)
tree3e1247be3f84dadc84a0c76dc821ca5530e528e2
parent4395b290c3931fe0c39c50547042c072b0892196 (diff)
downloadbinutils-redhat-c9c3ccf2f5c2bad2516b522c6ad7cd29cc66d21c.tar.gz
Handle R_X86_64_DTPOFF64
bfd/ PR ld/15685 * elf64-x86-64.c (elf_x86_64_relocate_section): Handle R_X86_64_DTPOFF64. ld/testsuite/ PR ld/15685 * ld-x86-64/tlsg.s: Add a test for R_X86_64_DTPOFF64. * ld-x86-64/tlsg.sd: Updated.
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/elf64-x86-64.c5
-rw-r--r--ld/testsuite/ChangeLog6
-rw-r--r--ld/testsuite/ld-x86-64/tlsg.s1
-rw-r--r--ld/testsuite/ld-x86-64/tlsg.sd2
5 files changed, 19 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 49a6fe60b8..a5928171d6 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2013-06-28 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/15685
+ * elf64-x86-64.c (elf_x86_64_relocate_section): Handle
+ R_X86_64_DTPOFF64.
+
2013-06-28 Nick Clifton <nickc@redhat.com>
PR ld/15302
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index 758231e2c4..56a1f814eb 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -4332,6 +4332,11 @@ direct:
relocation = elf_x86_64_tpoff (info, relocation);
break;
+ case R_X86_64_DTPOFF64:
+ BFD_ASSERT ((input_section->flags & SEC_CODE) == 0);
+ relocation -= elf_x86_64_dtpoff_base (info);
+ break;
+
default:
break;
}
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index dce58ad2b1..7bc29c81cb 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2013-06-28 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/15685
+ * ld-x86-64/tlsg.s: Add a test for R_X86_64_DTPOFF64.
+ * ld-x86-64/tlsg.sd: Updated.
+
2013-06-24 Maciej W. Rozycki <macro@codesourcery.com>
* ld-mips-elf/jalx-2.dd: Update for microMIPS PLT support.
diff --git a/ld/testsuite/ld-x86-64/tlsg.s b/ld/testsuite/ld-x86-64/tlsg.s
index 048e98f019..af390fb5a3 100644
--- a/ld/testsuite/ld-x86-64/tlsg.s
+++ b/ld/testsuite/ld-x86-64/tlsg.s
@@ -10,3 +10,4 @@ a:
_start:
.section .debug_foobar
.long a@dtpoff, 0
+ .quad a@dtpoff
diff --git a/ld/testsuite/ld-x86-64/tlsg.sd b/ld/testsuite/ld-x86-64/tlsg.sd
index 7652d57998..10c4934ef1 100644
--- a/ld/testsuite/ld-x86-64/tlsg.sd
+++ b/ld/testsuite/ld-x86-64/tlsg.sd
@@ -7,4 +7,4 @@
.*: +file format elf64-x86-64.*
Contents of section .debug_foobar:
- 0+ 18000000 0+ +.*
+ 0+ 18000000 0+ +18000000 0+ +.*