aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2010-08-13 20:50:27 +0000
committerH.J. Lu <hjl.tools@gmail.com>2010-08-13 20:50:27 +0000
commit56d4289c6c259fefb1bd1b30fffb207e48e3dcd5 (patch)
tree581c40cc1a61fbe0de106079b1aab431b3f9549a /ld
parente2054bcbe666ddc7ef69caa497864b49dbd406df (diff)
downloadgdb-56d4289c6c259fefb1bd1b30fffb207e48e3dcd5.zip
gdb-56d4289c6c259fefb1bd1b30fffb207e48e3dcd5.tar.gz
gdb-56d4289c6c259fefb1bd1b30fffb207e48e3dcd5.tar.bz2
Check if .got.plt section is discarded before using it.
bfd/ 2010-08-13 H.J. Lu <hongjiu.lu@intel.com> PR ld/11913 * elf32-i386.c (elf_i386_finish_dynamic_sections): Check if .got.plt section is discarded. * elf64-x86-64.c (elf64_x86_64_finish_dynamic_sections): Likewise. ld/testsuite/ 2010-08-13 H.J. Lu <hongjiu.lu@intel.com> PR ld/11913 * ld-i386/discarded1.d: New. * ld-i386/discarded1.s: Likewise. * ld-i386/discarded1.t: Likewise. * ld-x86-64/discarded1.d: Likewise. * ld-x86-64/discarded1.s: Likewise. * ld-x86-64/discarded1.t: Likewise. * ld-i386/i386.exp: Run discarded1. * ld-x86-64/x86-64.exp: Likewise.
Diffstat (limited to 'ld')
-rw-r--r--ld/testsuite/ChangeLog13
-rw-r--r--ld/testsuite/ld-i386/discarded1.d3
-rw-r--r--ld/testsuite/ld-i386/discarded1.s13
-rw-r--r--ld/testsuite/ld-i386/discarded1.t7
-rw-r--r--ld/testsuite/ld-i386/i386.exp1
-rw-r--r--ld/testsuite/ld-x86-64/discarded1.d3
-rw-r--r--ld/testsuite/ld-x86-64/discarded1.s13
-rw-r--r--ld/testsuite/ld-x86-64/discarded1.t7
-rw-r--r--ld/testsuite/ld-x86-64/x86-64.exp1
9 files changed, 61 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index b5250a5..c15a44e 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,16 @@
+2010-08-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/11913
+ * ld-i386/discarded1.d: New.
+ * ld-i386/discarded1.s: Likewise.
+ * ld-i386/discarded1.t: Likewise.
+ * ld-x86-64/discarded1.d: Likewise.
+ * ld-x86-64/discarded1.s: Likewise.
+ * ld-x86-64/discarded1.t: Likewise.
+
+ * ld-i386/i386.exp: Run discarded1.
+ * ld-x86-64/x86-64.exp: Likewise.
+
2010-08-09 Catherine Moore <clm@codesourcery.com>
* ld-mips-elf/mode-change-error-1.d: New.
diff --git a/ld/testsuite/ld-i386/discarded1.d b/ld/testsuite/ld-i386/discarded1.d
new file mode 100644
index 0000000..8106db3
--- /dev/null
+++ b/ld/testsuite/ld-i386/discarded1.d
@@ -0,0 +1,3 @@
+#as: --32
+#ld: -melf_i386 -T discarded1.t
+#error: .*discarded output section: `.got.plt'
diff --git a/ld/testsuite/ld-i386/discarded1.s b/ld/testsuite/ld-i386/discarded1.s
new file mode 100644
index 0000000..9b20c87
--- /dev/null
+++ b/ld/testsuite/ld-i386/discarded1.s
@@ -0,0 +1,13 @@
+ .text
+.globl _start
+ .type _start, @function
+_start:
+ movl x@GOT(%ecx), %eax
+ .size _start, .-_start
+.globl x
+ .data
+ .align 4
+ .type x, @object
+ .size x, 4
+x:
+ .long 2
diff --git a/ld/testsuite/ld-i386/discarded1.t b/ld/testsuite/ld-i386/discarded1.t
new file mode 100644
index 0000000..a4d617f
--- /dev/null
+++ b/ld/testsuite/ld-i386/discarded1.t
@@ -0,0 +1,7 @@
+ENTRY(_start)
+SECTIONS
+{
+ .text : {*(.text)}
+ .data : {*(.data)}
+ /DISCARD/ : {*(*)}
+}
diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp
index 850713a..86ba9e4 100644
--- a/ld/testsuite/ld-i386/i386.exp
+++ b/ld/testsuite/ld-i386/i386.exp
@@ -190,6 +190,7 @@ run_dump_test "protected2"
run_dump_test "protected3"
run_dump_test "tlspie1"
run_dump_test "nogot1"
+run_dump_test "discarded1"
if { !([istarget "i?86-*-linux*"]
|| [istarget "x86_64-*-linux*"]) } {
diff --git a/ld/testsuite/ld-x86-64/discarded1.d b/ld/testsuite/ld-x86-64/discarded1.d
new file mode 100644
index 0000000..c892595
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/discarded1.d
@@ -0,0 +1,3 @@
+#as: --64
+#ld: -melf_x86_64 -T discarded1.t
+#error: .*discarded output section: `.got.plt'
diff --git a/ld/testsuite/ld-x86-64/discarded1.s b/ld/testsuite/ld-x86-64/discarded1.s
new file mode 100644
index 0000000..c638ed9
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/discarded1.s
@@ -0,0 +1,13 @@
+ .text
+.globl _start
+ .type _start, @function
+_start:
+ movq x@GOTPCREL(%rip), %rax
+ .size _start, .-_start
+.globl x
+ .data
+ .align 4
+ .type x, @object
+ .size x, 4
+x:
+ .long 2
diff --git a/ld/testsuite/ld-x86-64/discarded1.t b/ld/testsuite/ld-x86-64/discarded1.t
new file mode 100644
index 0000000..a4d617f
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/discarded1.t
@@ -0,0 +1,7 @@
+ENTRY(_start)
+SECTIONS
+{
+ .text : {*(.text)}
+ .data : {*(.data)}
+ /DISCARD/ : {*(*)}
+}
diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
index d7ca525..ed5d8dc 100644
--- a/ld/testsuite/ld-x86-64/x86-64.exp
+++ b/ld/testsuite/ld-x86-64/x86-64.exp
@@ -99,6 +99,7 @@ run_dump_test "tlsle1"
run_dump_test "tlspie1"
run_dump_test "unique1"
run_dump_test "nogot1"
+run_dump_test "discarded1"
if { ![istarget "x86_64-*-linux*"] } {
return