diff options
author | Alan Modra <amodra@gmail.com> | 2016-07-20 15:06:49 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2016-07-21 11:30:34 +0930 |
commit | 5df1bc570fcc5ef5257b7a044acdaeb6b95b9822 (patch) | |
tree | b0992244c629eaa0646c2dfd99dcf6487066f4f3 /ld | |
parent | c092a4d9154f09e6c67648efb723878d7a74f44f (diff) | |
download | gdb-5df1bc570fcc5ef5257b7a044acdaeb6b95b9822.zip gdb-5df1bc570fcc5ef5257b7a044acdaeb6b95b9822.tar.gz gdb-5df1bc570fcc5ef5257b7a044acdaeb6b95b9822.tar.bz2 |
Fix implib test failures
bfd/
* elf.c (_bfd_elf_filter_global_symbols): Skip local symbols.
(swap_out_syms): Return an error when not finding ELF output
section rather than asserting.
* elflink.c (elf_output_implib): Call bfd_set_error on no symbols.
ld/
* testsuite/lib/ld-lib.exp (run_ld_link_tests): Add optional
parameter to pass list of xfails.
* testsuite/ld-elf/elf.exp: Add xfails for implib tests. Tidy
implib test formatting. Don't set .data start address.
* testsuite/ld-elf/implib.s: Remove first .bss directive and
replace second one with equivalent .section directive.
* testsuite/ld-elf/empty-implib.out: Add expected final error.
* testsuite/ld-elf/implib.rd: Update.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 11 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/elf.exp | 41 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/empty-implib.out | 1 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/implib.rd | 12 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/implib.s | 3 | ||||
-rw-r--r-- | ld/testsuite/lib/ld-lib.exp | 8 |
6 files changed, 56 insertions, 20 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index a2493d0..ad26f62 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,14 @@ +2016-07-21 Alan Modra <amodra@gmail.com> + + * testsuite/lib/ld-lib.exp (run_ld_link_tests): Add optional + parameter to pass list of xfails. + * testsuite/ld-elf/elf.exp: Add xfails for implib tests. Tidy + implib test formatting. Don't set .data start address. + * testsuite/ld-elf/implib.s: Remove first .bss directive and + replace second one with equivalent .section directive. + * testsuite/ld-elf/empty-implib.out: Add expected final error. + * testsuite/ld-elf/implib.rd: Update. + 2016-07-20 H.J. Lu <hongjiu.lu@intel.com> PR ld/20376 diff --git a/ld/testsuite/ld-elf/elf.exp b/ld/testsuite/ld-elf/elf.exp index 832f313..b67105f 100644 --- a/ld/testsuite/ld-elf/elf.exp +++ b/ld/testsuite/ld-elf/elf.exp @@ -136,21 +136,40 @@ foreach t $test_list { run_dump_test [file rootname $t] } +# Targets using the generic linker backend don't support generating +# an import library. +set xfail_implib "" +if { [istarget "d30v-*-*"] + || [istarget "dlx-*-*"] + || [istarget "fr30-*-*"] + || ([istarget "frv-*-*"] && ![istarget "frv-*-linux*"]) + || [istarget "ft32-*-*"] + || [istarget "i860-*-*"] + || [istarget "i960-*-*"] + || [istarget "iq2000-*-*"] + || [istarget "mn10200-*-*"] + || [istarget "moxie-*-*"] + || [istarget "msp430-*-*"] + || [istarget "mt-*-*"] + || [istarget "pj*-*-*"] } { + set xfail_implib "*-*-*" +} + # Check that the --out-implib option work correctly. run_ld_link_tests { {"Generate empty import library" - "--out-implib=tmpdir/implib.lib" "" - "--defsym NO_GLOBAL=1" - {implib.s} - {{ld empty-implib.out}} - "implib"} + "--out-implib=tmpdir/implib.lib" "" + "--defsym NO_GLOBAL=1" + {implib.s} + {{ld empty-implib.out}} + "implib"} {"Generate import library" - "-Tdata=0x1000 --out-implib=tmpdir/implib.lib" "" - "" - {implib.s} - {{readelf {-s tmpdir/implib.lib} implib.rd}} - "implib"} -} + "--out-implib=tmpdir/implib.lib" "" + "" + {implib.s} + {{readelf {-s tmpdir/implib.lib} implib.rd}} + "implib"} +} $xfail_implib if { [istarget *-*-linux*] || [istarget *-*-nacl*] diff --git a/ld/testsuite/ld-elf/empty-implib.out b/ld/testsuite/ld-elf/empty-implib.out index b123064..f611eb7 100644 --- a/ld/testsuite/ld-elf/empty-implib.out +++ b/ld/testsuite/ld-elf/empty-implib.out @@ -1,2 +1,3 @@ .*: .*: no symbol found for import library .*: .*: failed to generate import library +.*: final link failed: No symbols diff --git a/ld/testsuite/ld-elf/implib.rd b/ld/testsuite/ld-elf/implib.rd index 9f854a5..6835f39 100644 --- a/ld/testsuite/ld-elf/implib.rd +++ b/ld/testsuite/ld-elf/implib.rd @@ -1,10 +1,10 @@ -File: tmpdir/implib.lib +File: tmpdir/implib\.lib -Symbol table '.symtab' contains 3 entries: - Num: Value +Size Type Bind Vis Ndx Name - 0: [0-9a-f]+ 0 NOTYPE LOCAL DEFAULT UND - 1: 0+100[0-3] 1 OBJECT GLOBAL DEFAULT ABS exported1 - 2: 0+100[0-3] 1 OBJECT GLOBAL DEFAULT ABS exported2 +Symbol table '\.symtab' contains 3 entries: + +Num: +Value +Size Type +Bind +Vis +Ndx Name + +0: [0-9a-f]+ +0 NOTYPE +LOCAL +DEFAULT +UND + +1: [0-9a-f]+ +1 OBJECT +GLOBAL DEFAULT +ABS exported1 + +2: [0-9a-f]+ +1 OBJECT +GLOBAL DEFAULT +ABS exported2 File: tmpdir/implib diff --git a/ld/testsuite/ld-elf/implib.s b/ld/testsuite/ld-elf/implib.s index a86a940..e4d527b 100644 --- a/ld/testsuite/ld-elf/implib.s +++ b/ld/testsuite/ld-elf/implib.s @@ -1,5 +1,4 @@ .ifndef NO_GLOBAL - .bss .comm exported1,1 .data @@ -10,7 +9,7 @@ exported2: .byte 21 .endif - .bss + .section ".bss", "aw", %nobits not_exported1: .space 1 .size not_exported1, 1 diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp index 62f9768..9cd1959 100644 --- a/ld/testsuite/lib/ld-lib.exp +++ b/ld/testsuite/lib/ld-lib.exp @@ -1159,7 +1159,9 @@ proc ar_simple_create { ar aropts target objects } { # in all other cases, any output from the linker during linking is # treated as a sign of an error and FAILs the test. # -proc run_ld_link_tests { ldtests } { +# args is an optional list of target triplets to be xfailed. +# +proc run_ld_link_tests { ldtests args } { global ld global as global nm @@ -1188,6 +1190,10 @@ proc run_ld_link_tests { ldtests } { continue } + foreach target $args { + setup_xfail $target + } + set ld_options [lindex $testitem 1] set ld_after [lindex $testitem 2] set as_options [lindex $testitem 3] |