From: Alan Modra Date: Mon, 15 Jun 2020 02:41:27 +0000 (+0930) Subject: PR26103 testcase X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ea4b3731ecd4b00afa199cdcf988e6b1c706f7de;p=binutils-gdb.git PR26103 testcase PR 26103 * testsuite/ld-linkonce/ref1.s, * testsuite/ld-linkonce/ref2.s, * testsuite/ld-linkonce/sym1.s, * testsuite/ld-linkonce/sym2.s, * testsuite/ld-linkonce/sym3.s: New test files. * testsuite/ld-linkonce/linkonce.exp: Run tests for PE too. Add pr26103 test. Remove unnecessary load_lib. --- diff --git a/ld/ChangeLog b/ld/ChangeLog index 6aeafe69d76..5ecd26ad534 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,14 @@ +2020-06-15 Alan Modra + + PR 26103 + * testsuite/ld-linkonce/ref1.s, + * testsuite/ld-linkonce/ref2.s, + * testsuite/ld-linkonce/sym1.s, + * testsuite/ld-linkonce/sym2.s, + * testsuite/ld-linkonce/sym3.s: New test files. + * testsuite/ld-linkonce/linkonce.exp: Run tests for PE too. + Add pr26103 test. Remove unnecessary load_lib. + 2020-06-15 Alan Modra * testsuite/ld-linkonce/zeroeh_x.s: Rename from x.s. diff --git a/ld/testsuite/ld-linkonce/linkonce.exp b/ld/testsuite/ld-linkonce/linkonce.exp index 5bac44faf1c..924602cad4b 100644 --- a/ld/testsuite/ld-linkonce/linkonce.exp +++ b/ld/testsuite/ld-linkonce/linkonce.exp @@ -21,18 +21,19 @@ # Written by Hans-Peter Nilsson (hp@axis.com) # -# Test for ELF here (or really, .gnu.linkonce functionality), so we don't -# have to qualify on ELF specifically in every .d-file. - -if { ![istarget *-*-linux*] \ - && ![istarget *-*-gnu*] \ - && ![istarget *-*-nacl*] \ - && ![istarget hppa*64*-*-hpux*] \ - && ![istarget *-*-elf] } { +# Test .gnu.linkonce functionality +if { ![is_elf_format] && ![is_pecoff_format] } { return } -load_lib ld-lib.exp +run_ld_link_tests [list \ + [list "Build sym.a" \ + "" "" \ + "" {sym1.s sym2.s sym3.s ref2.s} {} "sym.a" ] \ + [list "pr26103" \ + "" "--start-group tmpdir/sym.a tmpdir/ref2.o --end-group" \ + "" {ref1.s} {} "pr26103" ] \ +] set rd_test_list [lsort [glob -nocomplain $srcdir/$subdir/*.d]] for { set i 0 } { $i < [llength $rd_test_list] } { incr i } { diff --git a/ld/testsuite/ld-linkonce/ref1.s b/ld/testsuite/ld-linkonce/ref1.s new file mode 100644 index 00000000000..fa138e9c6e9 --- /dev/null +++ b/ld/testsuite/ld-linkonce/ref1.s @@ -0,0 +1,2 @@ + .data + .dc.a one, two, three diff --git a/ld/testsuite/ld-linkonce/ref2.s b/ld/testsuite/ld-linkonce/ref2.s new file mode 100644 index 00000000000..302b889cac7 --- /dev/null +++ b/ld/testsuite/ld-linkonce/ref2.s @@ -0,0 +1,2 @@ + .data + .dc.a four diff --git a/ld/testsuite/ld-linkonce/sym1.s b/ld/testsuite/ld-linkonce/sym1.s new file mode 100644 index 00000000000..704d9f60958 --- /dev/null +++ b/ld/testsuite/ld-linkonce/sym1.s @@ -0,0 +1,12 @@ + .data + .global two +two: + .long 2 + + .section .gnu.linkonce.d.foo, "aw" + .global foo +# PE signature of the comdat group +foo: + .global one +one: + .long 1 diff --git a/ld/testsuite/ld-linkonce/sym2.s b/ld/testsuite/ld-linkonce/sym2.s new file mode 100644 index 00000000000..041f424f2b4 --- /dev/null +++ b/ld/testsuite/ld-linkonce/sym2.s @@ -0,0 +1,12 @@ + .data + .global three +three: + .long 3 + + .section .gnu.linkonce.d.foo, "aw" + .global foo +# PE signature of the comdat group +foo: + .global onex +onex: + .long 1 diff --git a/ld/testsuite/ld-linkonce/sym3.s b/ld/testsuite/ld-linkonce/sym3.s new file mode 100644 index 00000000000..28ae0fea3bd --- /dev/null +++ b/ld/testsuite/ld-linkonce/sym3.s @@ -0,0 +1,12 @@ + .data + .global four +four: + .long 4 + + .section .gnu.linkonce.d.foo, "aw" + .global foo +# PE signature of the comdat group +foo: + .global oney +oney: + .long 1