diff options
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-discard/extern.d | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-discard/start.d | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-discard/static.d | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/orphan-8.map | 4 | ||||
-rw-r--r-- | ld/testsuite/lib/ld-lib.exp | 22 |
6 files changed, 34 insertions, 7 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 2d3bf34..3098b4c 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,14 @@ 2016-11-04 Andrew Burgess <andrew.burgess@embecosm.com> + * testsuite/lib/ld-lib.exp (run_dump_test): Use object file names + based on the original source file name. + * testsuite/ld-discard/extern.d: Update object file names. + * testsuite/ld-discard/start.d: Likewise. + * testsuite/ld-discard/static.d: Likewise. + * testsuite/ld-elf/orphan-8.map: Likewise. + +2016-11-04 Andrew Burgess <andrew.burgess@embecosm.com> + * testsuite/lib/ld-lib.exp (check_shared_lib_support): Add xc16x-*-elf to the list of targets that don't support -shared. diff --git a/ld/testsuite/ld-discard/extern.d b/ld/testsuite/ld-discard/extern.d index 3075174..9932ebc 100644 --- a/ld/testsuite/ld-discard/extern.d +++ b/ld/testsuite/ld-discard/extern.d @@ -1,6 +1,6 @@ #source: extern.s #ld: -T discard.ld -#error: .*data.* referenced in section `\.text' of tmpdir/dump0.o: defined in discarded section `\.data\.exit' of tmpdir/dump0.o +#error: .*data.* referenced in section `\.text' of tmpdir/extern.o: defined in discarded section `\.data\.exit' of tmpdir/extern.o #objdump: -p #xfail: d30v-*-* dlx-*-* i960-*-* pj*-*-* #xfail: m68hc12-*-* m6812-*-* diff --git a/ld/testsuite/ld-discard/start.d b/ld/testsuite/ld-discard/start.d index 8c4a43b..d846bc7 100644 --- a/ld/testsuite/ld-discard/start.d +++ b/ld/testsuite/ld-discard/start.d @@ -1,7 +1,7 @@ #source: start.s #source: exit.s #ld: -T discard.ld -#error: `data' referenced in section `\.text' of tmpdir/dump0.o: defined in discarded section `\.data\.exit' of tmpdir/dump1.o +#error: `data' referenced in section `\.text' of tmpdir/start.o: defined in discarded section `\.data\.exit' of tmpdir/exit.o #objdump: -p #xfail: d30v-*-* dlx-*-* i960-*-* pj*-*-* #xfail: m68hc12-*-* m6812-*-* diff --git a/ld/testsuite/ld-discard/static.d b/ld/testsuite/ld-discard/static.d index 28ab9e8..3f61bb3 100644 --- a/ld/testsuite/ld-discard/static.d +++ b/ld/testsuite/ld-discard/static.d @@ -1,6 +1,6 @@ #source: static.s #ld: -T discard.ld -#error: `(\.data\.exit|data)' referenced in section `\.text' of tmpdir/dump0.o: defined in discarded section `\.data\.exit' of tmpdir/dump0.o +#error: `(\.data\.exit|data)' referenced in section `\.text' of tmpdir/static.o: defined in discarded section `\.data\.exit' of tmpdir/static.o #objdump: -p #xfail: d30v-*-* dlx-*-* i960-*-* pj*-*-* #xfail: m68hc12-*-* m6812-*-* diff --git a/ld/testsuite/ld-elf/orphan-8.map b/ld/testsuite/ld-elf/orphan-8.map index 308d427..5747790 100644 --- a/ld/testsuite/ld-elf/orphan-8.map +++ b/ld/testsuite/ld-elf/orphan-8.map @@ -1,7 +1,7 @@ #... .notbad 0x[0-9a-f]+ 0x4 - .notbad 0x[0-9a-f]+ 0x4 tmpdir/dump0.o + .notbad 0x[0-9a-f]+ 0x4 tmpdir/orphan.o #... .note.bar 0x[0-9a-f]+ 0x4 - .note.bar 0x[0-9a-f]+ 0x4 tmpdir/dump0.o + .note.bar 0x[0-9a-f]+ 0x4 tmpdir/orphan.o #... diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp index 0f86fe6..a2be49b 100644 --- a/ld/testsuite/lib/ld-lib.exp +++ b/ld/testsuite/lib/ld-lib.exp @@ -620,6 +620,7 @@ proc run_dump_test { name {extra_options {}} } { set dumpfile tmpdir/dump.out set run_ld 0 set run_objcopy 0 + set objfile_names {} set opts(as) {} set opts(ld) {} set opts(ld_after_inputfiles) {} @@ -666,6 +667,22 @@ proc run_dump_test { name {extra_options {}} } { } else { lappend asflags {} } + + # Create the object file name based on nothing but the source + # file name. + set new_objfile \ + [concat tmpdir/[file rootname [file tail [lindex $opt_val 0]]].o] + # But, sometimes, we have the exact same source filename in + # different directories (foo/src.s bar/src.s) which would lead + # us to try and create two src.o files. We detect this + # conflict here, and instead create src.o and src1.o. + set j 0 + while { [lsearch $objfile_names $new_objfile] != -1 } { + incr j + set new_objfile \ + [concat tmpdir/[file rootname [file tail [lindex $opt_val 0]]]${j}.o] + } + lappend objfile_names $new_objfile } default { if [string length $opts($opt_name)] { @@ -792,6 +809,7 @@ proc run_dump_test { name {extra_options {}} } { if { $opts(source) == "" } { set sourcefiles [list ${file}.s] set asflags [list ""] + set objfile_names [list tmpdir/[file tail ${file}].o] } else { set sourcefiles {} foreach sf $opts(source) { @@ -826,7 +844,7 @@ proc run_dump_test { name {extra_options {}} } { } regsub "RUN_OBJCOPY" $sourceasflags "" sourceasflags - set objfile "tmpdir/dump$i.o" + set objfile [lindex $objfile_names $i] catch "exec rm -f $objfile" exec_output lappend objfiles $objfile set cmd "$AS $ASFLAGS $opts(as) $sourceasflags -o $objfile $sourcefile" @@ -1014,7 +1032,7 @@ proc run_dump_test { name {extra_options {}} } { } } } else { - set objfile "tmpdir/dump0.o" + set objfile [lindex $objfiles 0] } # We must not have expected failure if we get here. |