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'