aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2013-02-07 02:15:30 +0000
committerH.J. Lu <hjl.tools@gmail.com>2013-02-07 02:15:30 +0000
commit20e52bd2b8041df10920960f5882636d420ebb13 (patch)
tree2439fb32d91d14e6653079491a1f4dd4332ff8a4 /ld
parent5605a9468ae3ac8763f23b1fbb3a9e3c7c9a5155 (diff)
downloadgdb-20e52bd2b8041df10920960f5882636d420ebb13.zip
gdb-20e52bd2b8041df10920960f5882636d420ebb13.tar.gz
gdb-20e52bd2b8041df10920960f5882636d420ebb13.tar.bz2
Don't resolve size relocation against non-zero TLS symbol
bfd/ * elf32-i386.c (elf_i386_allocate_dynrelocs): Don't clear pc_count for non-zero TLS symbol. (elf_i386_relocate_section): Don't resolve size relocation against non-zero TLS symbol. * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Don't clear pc_count for non-zero TLS symbol. (elf_x86_64_relocate_section): Don't resolve size relocation against non-zero TLS symbol. ld/testsuite/ * ld-size/size-10.rd: Updated. * ld-size/size-8.rd: Likewise. * ld-size/size32-2-i386.d: Likewise. * ld-size/size32-2-x32.d: Likewise. * ld-size/size32-2-x86-64.d: Likewise. * ld-size/size64-2-x32.d: Likewise. * ld-size/size64-2-x86-64.d: Likewise. * ld-size/size.exp (run_time_tests): Pass --hash-styl=gnu to linker for size-8 test.
Diffstat (limited to 'ld')
-rw-r--r--ld/testsuite/ChangeLog15
-rw-r--r--ld/testsuite/ld-size/size-10.rd5
-rw-r--r--ld/testsuite/ld-size/size-8.rd5
-rw-r--r--ld/testsuite/ld-size/size.exp2
-rw-r--r--ld/testsuite/ld-size/size32-2-i386.d12
-rw-r--r--ld/testsuite/ld-size/size32-2-x32.d12
-rw-r--r--ld/testsuite/ld-size/size32-2-x86-64.d12
-rw-r--r--ld/testsuite/ld-size/size64-2-x32.d14
-rw-r--r--ld/testsuite/ld-size/size64-2-x86-64.d14
9 files changed, 56 insertions, 35 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index 11535a6..2c12a52 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,5 +1,18 @@
+2013-02-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ * ld-size/size-10.rd: Updated.
+ * ld-size/size-8.rd: Likewise.
+ * ld-size/size32-2-i386.d: Likewise.
+ * ld-size/size32-2-x32.d: Likewise.
+ * ld-size/size32-2-x86-64.d: Likewise.
+ * ld-size/size64-2-x32.d: Likewise.
+ * ld-size/size64-2-x86-64.d: Likewise.
+
+ * ld-size/size.exp (run_time_tests): Pass --hash-styl=gnu to
+ linker for size-8 test.
+
2013-02-06 Sandra Loosemore <sandra@codesourcery.com>
- Andrew Jenner <andrew@codesourcery.com>
+ Andrew Jenner <andrew@codesourcery.com>
Based on patches from Altera Corporation.
diff --git a/ld/testsuite/ld-size/size-10.rd b/ld/testsuite/ld-size/size-10.rd
index 1cad47e..a5f8ee8 100644
--- a/ld/testsuite/ld-size/size-10.rd
+++ b/ld/testsuite/ld-size/size-10.rd
@@ -1,4 +1,3 @@
-#failif
-#...
-.* +R_.*_NONE +.*
#...
+[0-9a-f]+ +[0-9a-f]+ +R_.*_SIZE(32|64) +.*
+#pass
diff --git a/ld/testsuite/ld-size/size-8.rd b/ld/testsuite/ld-size/size-8.rd
index 1cad47e..a5f8ee8 100644
--- a/ld/testsuite/ld-size/size-8.rd
+++ b/ld/testsuite/ld-size/size-8.rd
@@ -1,4 +1,3 @@
-#failif
-#...
-.* +R_.*_NONE +.*
#...
+[0-9a-f]+ +[0-9a-f]+ +R_.*_SIZE(32|64) +.*
+#pass
diff --git a/ld/testsuite/ld-size/size.exp b/ld/testsuite/ld-size/size.exp
index a1cbc17..9fe152c 100644
--- a/ld/testsuite/ld-size/size.exp
+++ b/ld/testsuite/ld-size/size.exp
@@ -156,7 +156,7 @@ if { [regexp_diff "tmpdir/dump.out" "$srcdir/$subdir/size-7.out" ] } then {
# Run-time size relocation tests.
set run_time_tests {
{"Run size-8"
- "tmpdir/libsize-8.so" ""
+ "tmpdir/libsize-8.so --hash-styl=gnu" ""
{size-8a.c} "size-8" "size-8.out"}
{"Run size-9"
"tmpdir/libsize-9.so" ""
diff --git a/ld/testsuite/ld-size/size32-2-i386.d b/ld/testsuite/ld-size/size32-2-i386.d
index 328006e..2db0e1d 100644
--- a/ld/testsuite/ld-size/size32-2-i386.d
+++ b/ld/testsuite/ld-size/size32-2-i386.d
@@ -8,11 +8,13 @@
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
-0+1234 R_386_SIZE32 zzz
-0+1238 R_386_SIZE32 zzz
-0+123c R_386_SIZE32 zzz
+0+123c R_386_SIZE32 xxx
+0+1240 R_386_SIZE32 yyy
+0+1244 R_386_SIZE32 zzz
+0+1248 R_386_SIZE32 zzz
+0+124c R_386_SIZE32 zzz
Contents of section .data:
- 122c 28000000 28000000 00000000 e2ffffff ................
- 123c 1e000000 ....
+ 123c 00000000 00000000 00000000 e2ffffff ................
+ 124c 1e000000 ....
diff --git a/ld/testsuite/ld-size/size32-2-x32.d b/ld/testsuite/ld-size/size32-2-x32.d
index 5049c4a..9c1eae2 100644
--- a/ld/testsuite/ld-size/size32-2-x32.d
+++ b/ld/testsuite/ld-size/size32-2-x32.d
@@ -8,11 +8,13 @@
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
-0+200268 R_X86_64_SIZE32 zzz
-0+20026c R_X86_64_SIZE32 zzz-0x0000001e
-0+200270 R_X86_64_SIZE32 zzz\+0x0000001e
+0+200278 R_X86_64_SIZE32 xxx
+0+20027c R_X86_64_SIZE32 yyy
+0+200280 R_X86_64_SIZE32 zzz
+0+200284 R_X86_64_SIZE32 zzz-0x0000001e
+0+200288 R_X86_64_SIZE32 zzz\+0x0000001e
Contents of section .data:
- 200260 28000000 28000000 00000000 00000000 ................
- 200270 00000000 ....
+ 200278 00000000 00000000 00000000 00000000 ................
+ 200288 00000000 ....
diff --git a/ld/testsuite/ld-size/size32-2-x86-64.d b/ld/testsuite/ld-size/size32-2-x86-64.d
index 482b142..1851e0f 100644
--- a/ld/testsuite/ld-size/size32-2-x86-64.d
+++ b/ld/testsuite/ld-size/size32-2-x86-64.d
@@ -8,11 +8,13 @@
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
-0+2003b0 R_X86_64_SIZE32 zzz
-0+2003b4 R_X86_64_SIZE32 zzz-0x000000000000001e
-0+2003b8 R_X86_64_SIZE32 zzz\+0x000000000000001e
+0+2003d8 R_X86_64_SIZE32 xxx
+0+2003dc R_X86_64_SIZE32 yyy
+0+2003e0 R_X86_64_SIZE32 zzz
+0+2003e4 R_X86_64_SIZE32 zzz-0x000000000000001e
+0+2003e8 R_X86_64_SIZE32 zzz\+0x000000000000001e
Contents of section .data:
- 2003a8 28000000 28000000 00000000 00000000 ................
- 2003b8 00000000 ....
+ 2003d8 00000000 00000000 00000000 00000000 ................
+ 2003e8 00000000 ....
diff --git a/ld/testsuite/ld-size/size64-2-x32.d b/ld/testsuite/ld-size/size64-2-x32.d
index 987f244..1a30c98 100644
--- a/ld/testsuite/ld-size/size64-2-x32.d
+++ b/ld/testsuite/ld-size/size64-2-x32.d
@@ -8,12 +8,14 @@
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
-0+200270 R_X86_64_SIZE32 zzz
-0+200278 R_X86_64_SIZE64 zzz-0x0000001e
-0+200280 R_X86_64_SIZE64 zzz\+0x0000001e
+0+200278 R_X86_64_SIZE32 xxx
+0+200280 R_X86_64_SIZE32 yyy
+0+200288 R_X86_64_SIZE32 zzz
+0+200290 R_X86_64_SIZE64 zzz-0x0000001e
+0+200298 R_X86_64_SIZE64 zzz\+0x0000001e
Contents of section .data:
- 200260 28000000 00000000 28000000 00000000 ................
- 200270 00000000 00000000 00000000 00000000 ................
- 200280 00000000 00000000 ........
+ 200278 00000000 00000000 00000000 00000000 ................
+ 200288 00000000 00000000 00000000 00000000 ................
+ 200298 00000000 00000000 ........
diff --git a/ld/testsuite/ld-size/size64-2-x86-64.d b/ld/testsuite/ld-size/size64-2-x86-64.d
index 72c6592..4cc11cf 100644
--- a/ld/testsuite/ld-size/size64-2-x86-64.d
+++ b/ld/testsuite/ld-size/size64-2-x86-64.d
@@ -8,12 +8,14 @@
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
-0+2003b8 R_X86_64_SIZE64 zzz
-0+2003c0 R_X86_64_SIZE64 zzz-0x000000000000001e
-0+2003c8 R_X86_64_SIZE64 zzz\+0x000000000000001e
+0+2003d8 R_X86_64_SIZE64 xxx
+0+2003e0 R_X86_64_SIZE64 yyy
+0+2003e8 R_X86_64_SIZE64 zzz
+0+2003f0 R_X86_64_SIZE64 zzz-0x000000000000001e
+0+2003f8 R_X86_64_SIZE64 zzz\+0x000000000000001e
Contents of section .data:
- 2003a8 28000000 00000000 28000000 00000000 ................
- 2003b8 00000000 00000000 00000000 00000000 ................
- 2003c8 00000000 00000000 ........
+ 2003d8 00000000 00000000 00000000 00000000 ................
+ 2003e8 00000000 00000000 00000000 00000000 ................
+ 2003f8 00000000 00000000 ........