[binutils-gdb] ld: testsuite: Skip "Run with libpr19553c.so" test on Solaris

Rainer Orth ro@sourceware.org
Mon Jul 28 13:35:00 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7c1c13e896c76879bcf3fb29332e0a59918bc9e0

commit 7c1c13e896c76879bcf3fb29332e0a59918bc9e0
Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Date:   Mon Jul 28 15:34:12 2025 +0200

    ld: testsuite: Skip "Run with libpr19553c.so" test on Solaris
    
    The
    
    FAIL: Run with libpr19553c.so
    
    test FAILs on Solaris (32 and 64-bit, sparc and x86):
    
    Running: tmpdir/pr19553c > tmpdir/pr19553c.out
    diff tmpdir/pr19553c.out /vol/src/gnu/binutils/hg/master/local/ld/testsuite/ld-elf/pr19553c.out
    1c1
    < pr19553b
    ---
    > pr19553c
    child process exited abnormally
    
    The test uses .symver, resulting in versioned symbols which the Solaris
    ld.so.1 doesn't support and never will.  Running it with LD_DEBUG=all
    shows
    
    26493: 1: symbol=foo;  lookup in file=tmpdir/pr19553c  [ ELF ]
    26493: 1: symbol=foo;  lookup in file=tmpdir/libpr19553c.so  [ ELF ]
    26493: 1: symbol=foo;  skipping entry in file=tmpdir/libpr19553c.so, index[7], version=FOO, due to GNU version hidden bit
    26493: 1: symbol=foo;  continuing lookup in file=tmpdir/libpr19553c.so  [ ELF ]
    26493: 1: symbol=foo;  lookup in file=tmpdir/libpr19553b.so  [ ELF ]
    26493: 1: binding file=tmpdir/pr19553c to file=tmpdir/libpr19553b.so: symbol 'foo'
    
    so this patch skips the test.
    
    2025-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
    
            ld:
            * testsuite/ld-elf/indirect.exp (Run with libpr19553c.so):
            Skip on *-*-solaris2*.

Diff:
---
 ld/testsuite/ld-elf/indirect.exp | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/ld/testsuite/ld-elf/indirect.exp b/ld/testsuite/ld-elf/indirect.exp
index 9a0bcb25da3..3d9cc2aff05 100644
--- a/ld/testsuite/ld-elf/indirect.exp
+++ b/ld/testsuite/ld-elf/indirect.exp
@@ -189,14 +189,21 @@ set run_tests [list \
      {check-ptr-eq.c} "pr18720d" "pr18720.out"] \
     [list "Run with libpr19553b.so" \
      "-Wl,--no-as-needed tmpdir/libpr19553b.so tmpdir/libpr19553d.so -Wl,-rpath-link,." "" \
-     {pr19553a.c} "pr19553b" "pr19553b.out"] \
+     {pr19553a.c} "pr19553b" "pr19553b.out"]
+]
+
+# This test relies on versioned symbols, which Solaris ld.so.1 doesn't support.
+if { ![istarget *-*-solaris2*] } {
+    lappend run_tests \
     [list "Run with libpr19553c.so" \
      "-Wl,--no-as-needed tmpdir/libpr19553c.so tmpdir/libpr19553b.so tmpdir/libpr19553d.so" "" \
-     {pr19553a.c} "pr19553c" "pr19553c.out"] \
+     {pr19553a.c} "pr19553c" "pr19553c.out"]
+}
+
+lappend run_tests \
     [list "Run with libpr19553d.so" \
      "-Wl,--no-as-needed tmpdir/libpr19553d.so tmpdir/libpr19553b.so -Wl,-rpath-link,." "" \
-     {pr19553a.c} "pr19553d" "pr19553d.out"] \
-]
+     {pr19553a.c} "pr19553d" "pr19553d.out"]
 
 run_ld_link_exec_tests $run_tests


More information about the Binutils-cvs mailing list