aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2012-12-21 18:15:22 +0000
committerH.J. Lu <hjl.tools@gmail.com>2012-12-21 18:15:22 +0000
commita5479e5ff4c29dcf93acde1424b69d4909fd3044 (patch)
treec1908afeee4aa8472b534f890d7d416765aab6f0 /ld
parentedcac0c105556029774320bc8288beb472e999b5 (diff)
downloadgdb-a5479e5ff4c29dcf93acde1424b69d4909fd3044.zip
gdb-a5479e5ff4c29dcf93acde1424b69d4909fd3044.tar.gz
gdb-a5479e5ff4c29dcf93acde1424b69d4909fd3044.tar.bz2
Properly adjust h->plt.refcount
bfd/ PR ld/14980 * elf32-i386.c (elf_i386_adjust_dynamic_symbol): Properly adjust h->plt.refcount. * elf64-x86-64.c (elf_x86_64_adjust_dynamic_symbol): Likewise. ld/testsuite/ PR ld/14980 * ld-ifunc/ifunc-14c.s: New file. * ld-ifunc/ifunc-14e-i386.d: Likewise. * ld-ifunc/ifunc-14e-x86-64.d: Likewise. * ld-ifunc/ifunc-14f-i386.d: Likewise. * ld-ifunc/ifunc-14f-x86-64.d: Likewise.
Diffstat (limited to 'ld')
-rw-r--r--ld/testsuite/ChangeLog9
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-14c.s7
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-14e-i386.d12
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-14e-x86-64.d12
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-14f-i386.d12
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-14f-x86-64.d12
6 files changed, 64 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index a97bd42..16bffd8 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2012-12-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/14980
+ * ld-ifunc/ifunc-14c.s: New file.
+ * ld-ifunc/ifunc-14e-i386.d: Likewise.
+ * ld-ifunc/ifunc-14e-x86-64.d: Likewise.
+ * ld-ifunc/ifunc-14f-i386.d: Likewise.
+ * ld-ifunc/ifunc-14f-x86-64.d: Likewise.
+
2012-12-19 Alan Modra <amodra@gmail.com>
PR ld/14962
diff --git a/ld/testsuite/ld-ifunc/ifunc-14c.s b/ld/testsuite/ld-ifunc/ifunc-14c.s
new file mode 100644
index 0000000..3cde56e
--- /dev/null
+++ b/ld/testsuite/ld-ifunc/ifunc-14c.s
@@ -0,0 +1,7 @@
+ .text
+ .globl xxx
+ .type xxx, @function
+xxx:
+ jmp foo
+ .size xxx, .-xxx
+ .hidden foo
diff --git a/ld/testsuite/ld-ifunc/ifunc-14e-i386.d b/ld/testsuite/ld-ifunc/ifunc-14e-i386.d
new file mode 100644
index 0000000..5380987
--- /dev/null
+++ b/ld/testsuite/ld-ifunc/ifunc-14e-i386.d
@@ -0,0 +1,12 @@
+#source: ifunc-14a.s
+#source: ifunc-14c.s
+#source: ifunc-14b.s
+#ld: -shared -m elf_i386 -z nocombreloc
+#as: --32
+#readelf: -r --wide
+#target: x86_64-*-* i?86-*-*
+
+#failif
+#...
+.* +R_386_NONE +.*
+#...
diff --git a/ld/testsuite/ld-ifunc/ifunc-14e-x86-64.d b/ld/testsuite/ld-ifunc/ifunc-14e-x86-64.d
new file mode 100644
index 0000000..0955c92
--- /dev/null
+++ b/ld/testsuite/ld-ifunc/ifunc-14e-x86-64.d
@@ -0,0 +1,12 @@
+#source: ifunc-14a.s
+#source: ifunc-14c.s
+#source: ifunc-14b.s
+#ld: -shared -m elf_x86_64 -z nocombreloc
+#as: --64
+#readelf: -r --wide
+#target: x86_64-*-*
+
+#failif
+#...
+.* +R_X86_64_NONE +.*
+#...
diff --git a/ld/testsuite/ld-ifunc/ifunc-14f-i386.d b/ld/testsuite/ld-ifunc/ifunc-14f-i386.d
new file mode 100644
index 0000000..ed3dc53
--- /dev/null
+++ b/ld/testsuite/ld-ifunc/ifunc-14f-i386.d
@@ -0,0 +1,12 @@
+#source: ifunc-14a.s
+#source: ifunc-14b.s
+#source: ifunc-14c.s
+#ld: -shared -m elf_i386 -z nocombreloc
+#as: --32
+#readelf: -r --wide
+#target: x86_64-*-* i?86-*-*
+
+#failif
+#...
+.* +R_386_NONE +.*
+#...
diff --git a/ld/testsuite/ld-ifunc/ifunc-14f-x86-64.d b/ld/testsuite/ld-ifunc/ifunc-14f-x86-64.d
new file mode 100644
index 0000000..12fb225
--- /dev/null
+++ b/ld/testsuite/ld-ifunc/ifunc-14f-x86-64.d
@@ -0,0 +1,12 @@
+#source: ifunc-14a.s
+#source: ifunc-14b.s
+#source: ifunc-14c.s
+#ld: -shared -m elf_x86_64 -z nocombreloc
+#as: --64
+#readelf: -r --wide
+#target: x86_64-*-*
+
+#failif
+#...
+.* +R_X86_64_NONE +.*
+#...