aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2012-12-18 13:38:10 +0000
committerAlan Modra <amodra@gmail.com>2012-12-18 13:38:10 +0000
commit8d708c8cad07b1d961c7d0a30040116d79134e92 (patch)
tree58b50117f0f7fe9f9e31f4d7cadf71bf5b03a3c5 /ld
parent * elf.c (swap_out_syms): Set shndx to SHN_ABS when not one of (diff)
downloadbinutils-gdb-8d708c8cad07b1d961c7d0a30040116d79134e92.tar.gz
binutils-gdb-8d708c8cad07b1d961c7d0a30040116d79134e92.tar.bz2
binutils-gdb-8d708c8cad07b1d961c7d0a30040116d79134e92.zip
PR ld/14962
* ld-scripts/pr14962.d, * ld-scripts/pr14962.t, * ld-scripts/pr14962a.s, * ld-scripts/pr14962b.s: New test. * ld-scripts/expr.exp: Run it.
Diffstat (limited to 'ld')
-rw-r--r--ld/testsuite/ChangeLog7
-rw-r--r--ld/testsuite/ld-scripts/expr.exp1
-rw-r--r--ld/testsuite/ld-scripts/pr14962.d11
-rw-r--r--ld/testsuite/ld-scripts/pr14962.t8
-rw-r--r--ld/testsuite/ld-scripts/pr14962a.s10
-rw-r--r--ld/testsuite/ld-scripts/pr14962b.s4
6 files changed, 41 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index abbe043cb93..a97bd4214a8 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2012-12-19 Alan Modra <amodra@gmail.com>
+
+ PR ld/14962
+ * ld-scripts/pr14962.d, * ld-scripts/pr14962.t,
+ * ld-scripts/pr14962a.s, * ld-scripts/pr14962b.s: New test.
+ * ld-scripts/expr.exp: Run it.
+
2012-12-17 Roland McGrath <mcgrathr@google.com>
* ld-elf/elf.exp (stack exec, stack size): Run for *-*-nacl* targets.
diff --git a/ld/testsuite/ld-scripts/expr.exp b/ld/testsuite/ld-scripts/expr.exp
index ea5002f9b35..0f92d979e43 100644
--- a/ld/testsuite/ld-scripts/expr.exp
+++ b/ld/testsuite/ld-scripts/expr.exp
@@ -24,3 +24,4 @@ run_dump_test expr1
run_dump_test expr2
run_dump_test sane1
run_dump_test assign-loc
+run_dump_test pr14962
diff --git a/ld/testsuite/ld-scripts/pr14962.d b/ld/testsuite/ld-scripts/pr14962.d
new file mode 100644
index 00000000000..616836d3a8f
--- /dev/null
+++ b/ld/testsuite/ld-scripts/pr14962.d
@@ -0,0 +1,11 @@
+#ld: -Ttext=0x1000 -Tdata=0x2000 -T pr14962.t
+#source: pr14962a.s
+#source: pr14962b.s
+#nm: -n
+#notarget: rx-*-*
+# the reference to x would normally generate a cross-reference error
+# but the linker script converts x to absolute to avoid the error
+
+#...
+0+2000 A x
+#pass
diff --git a/ld/testsuite/ld-scripts/pr14962.t b/ld/testsuite/ld-scripts/pr14962.t
new file mode 100644
index 00000000000..f399acdcef9
--- /dev/null
+++ b/ld/testsuite/ld-scripts/pr14962.t
@@ -0,0 +1,8 @@
+NOCROSSREFS ( .text .data )
+x = ABSOLUTE(x);
+SECTIONS
+{
+ .text : { *(.text) }
+ .data : { *(.data) }
+ /DISCARD/ : { *(*) }
+}
diff --git a/ld/testsuite/ld-scripts/pr14962a.s b/ld/testsuite/ld-scripts/pr14962a.s
new file mode 100644
index 00000000000..abaaaa691d2
--- /dev/null
+++ b/ld/testsuite/ld-scripts/pr14962a.s
@@ -0,0 +1,10 @@
+ .globl main
+ .globl start
+ .globl _start
+ .globl __start
+ .text
+main:
+start:
+_start:
+__start:
+ .dc.a x
diff --git a/ld/testsuite/ld-scripts/pr14962b.s b/ld/testsuite/ld-scripts/pr14962b.s
new file mode 100644
index 00000000000..db27d7601e3
--- /dev/null
+++ b/ld/testsuite/ld-scripts/pr14962b.s
@@ -0,0 +1,4 @@
+ .data
+ .globl x
+x:
+ .dc.a x