aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-scripts
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-12-24 15:56:23 +1030
committerAlan Modra <amodra@gmail.com>2020-12-24 22:58:03 +1030
commitde34d42812a0b978b278cd344abeaee7c71fa55c (patch)
tree3ce14917aa8bf1a4949291d3b4db89f8a42da4df /ld/testsuite/ld-scripts
parent62fa7b3c6a7bca91df55cf520a97cb047070a475 (diff)
downloadgdb-de34d42812a0b978b278cd344abeaee7c71fa55c.zip
gdb-de34d42812a0b978b278cd344abeaee7c71fa55c.tar.gz
gdb-de34d42812a0b978b278cd344abeaee7c71fa55c.tar.bz2
PR27100, final link failed: bad value
The failure on this PR is due to using the same bfd section for multiple output sections. Commit 21401fc7bf67 managed to create duplicate linker script output section statements, but not the actual bfd sections. PR 27100 * ldlang.h (lang_output_section_statement_type): Add dup_output. * ldlang.c (lang_output_section_statement_lookup): Set dup_output. (init_os): Test dup_output rather than constraint. * testsuite/ld-scripts/pr27100.d, * testsuite/ld-scripts/pr27100.s, * testsuite/ld-scripts/pr27100.t: New test. * testsuite/ld-scripts/data.exp: Run it. Don't exclude aout here. * testsuite/ld-scripts/data.d: Do so here instead. * testsuite/ld-scripts/fill.d: Likewise. * testsuite/ld-scripts/fill16.d: Likewise.
Diffstat (limited to 'ld/testsuite/ld-scripts')
-rw-r--r--ld/testsuite/ld-scripts/data.d1
-rw-r--r--ld/testsuite/ld-scripts/data.exp9
-rw-r--r--ld/testsuite/ld-scripts/fill.d1
-rw-r--r--ld/testsuite/ld-scripts/fill16.d1
-rw-r--r--ld/testsuite/ld-scripts/pr27100.d10
-rw-r--r--ld/testsuite/ld-scripts/pr27100.s2
-rw-r--r--ld/testsuite/ld-scripts/pr27100.t2
7 files changed, 18 insertions, 8 deletions
diff --git a/ld/testsuite/ld-scripts/data.d b/ld/testsuite/ld-scripts/data.d
index b7ca0a7..9784672 100644
--- a/ld/testsuite/ld-scripts/data.d
+++ b/ld/testsuite/ld-scripts/data.d
@@ -1,6 +1,7 @@
#source: data.s
#ld: -T data.t
#objdump: -s -j .text
+#notarget: [is_aout_format]
#xfail: tic4x-*-* tic54x-*-*
.*: file format .*
diff --git a/ld/testsuite/ld-scripts/data.exp b/ld/testsuite/ld-scripts/data.exp
index 4e20cf7..673b2f5 100644
--- a/ld/testsuite/ld-scripts/data.exp
+++ b/ld/testsuite/ld-scripts/data.exp
@@ -19,14 +19,6 @@
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
# MA 02110-1301, USA.
-# An a.out "objdump -s -j .text" has the file header visible inside the
-# text segment, confusing run_dump_test.
-if {[is_aout_format]} {
- unsupported data
- unsupported fill
- return
-}
-
set old_LDFLAGS $LDFLAGS
if { [is_xcoff_format] } then {
set LDFLAGS "$LDFLAGS -bnogc"
@@ -35,5 +27,6 @@ if { [is_xcoff_format] } then {
run_dump_test data
run_dump_test fill
run_dump_test fill16
+run_dump_test pr27100
set LDFLAGS $old_LDFLAGS
diff --git a/ld/testsuite/ld-scripts/fill.d b/ld/testsuite/ld-scripts/fill.d
index 54715c5..d3b5ea9 100644
--- a/ld/testsuite/ld-scripts/fill.d
+++ b/ld/testsuite/ld-scripts/fill.d
@@ -3,6 +3,7 @@
#source: fill_2.s
#ld: -T fill.t
#objdump: -s -j .text
+#notarget: [is_aout_format]
#skip: ia64-*-* mips*-*-freebsd* mips*-*-gnu* mips*-*-irix* mips*-*-kfreebsd*
#skip: mips*-*-linux* mips*-*-netbsd* mips*-*-openbsd* mips*-*-sysv4*
#skip: tilegx*-*-* tilepro-*-* x86_64-*-cygwin x86_64-*-mingw* x86_64-*-pe*
diff --git a/ld/testsuite/ld-scripts/fill16.d b/ld/testsuite/ld-scripts/fill16.d
index 19be5f2..91dc0a0 100644
--- a/ld/testsuite/ld-scripts/fill16.d
+++ b/ld/testsuite/ld-scripts/fill16.d
@@ -3,6 +3,7 @@
#source: fill16_2.s
#ld: -T fill.t
#objdump: -s -j .text
+#notarget: [is_aout_format]
#skip: arm-*-coff i[3-7]86-*-coff [is_xcoff_format]
#xfail: alpha*-*-*ecoff sh-*-pe sparc*-*-coff
#xfail: tic30-*-coff tic4x-*-* tic54x-*-* z8k-*-*
diff --git a/ld/testsuite/ld-scripts/pr27100.d b/ld/testsuite/ld-scripts/pr27100.d
new file mode 100644
index 0000000..28b5875
--- /dev/null
+++ b/ld/testsuite/ld-scripts/pr27100.d
@@ -0,0 +1,10 @@
+#ld: -r -T pr27100.t
+#objdump: -h
+#notarget: [is_aout_format]
+#xfail: alpha*-*-*vms* mmix-*-* *c54x-*-* [is_xcoff_format]
+
+#...
+.* \.data +0+60 .*
+#...
+.* \.data +0+10 .*
+#pass
diff --git a/ld/testsuite/ld-scripts/pr27100.s b/ld/testsuite/ld-scripts/pr27100.s
new file mode 100644
index 0000000..3eb147d
--- /dev/null
+++ b/ld/testsuite/ld-scripts/pr27100.s
@@ -0,0 +1,2 @@
+ .data
+ .space 80
diff --git a/ld/testsuite/ld-scripts/pr27100.t b/ld/testsuite/ld-scripts/pr27100.t
new file mode 100644
index 0000000..b94b8e9
--- /dev/null
+++ b/ld/testsuite/ld-scripts/pr27100.t
@@ -0,0 +1,2 @@
+SECTIONS { .data ALIGN (16) : { aa = .; LONG(0xdeadbeef); . = ALIGN (16); } }
+SECTIONS { .data ALIGN (16) : { bb = .; LONG(0x00c0ffee); . = ALIGN (16); } }