[PATCH] ld: testsuite: Fix ld-elfvers tests on Solaris
Jan Beulich
jbeulich@suse.com
Mon Aug 18 10:46:08 GMT 2025
On 15.08.2025 10:21, Rainer Orth wrote:
> All ld-elfvers tests FAIL on Solaris/SPARC, always with the same failure
> mode:
>
> FAIL: vers1
>
> ./ld-new: _etext: undefined version: vers1.so
> ./ld-new: _end: undefined version: vers1.so
> ./ld-new: _edata: undefined version: vers1.so
> ./ld-new: failed to set dynamic section sizes: bad value
>
> This is due to the use of --no-undefined-version, the error being
> emitted by bfd/elflink.c (bfd_elf_size_dynamic_sections). The affected
> symbols are mandated by the Solaris ABI in versioned shared objects and
> are generated by ld/emultempl/solaris2.em
> (elf_solaris2_before_allocation). The check in
> bfd_elf_size_dynamic_sections fails since for the base version (vers1.so),
> both symver and script are 0:
>
> vers1.so pattern = "_etext", literal = 1, symver = 0, script = 0, mask = 1
>
> Given that those symbols are generated internally by ld, it seems
> sensible to set script = 1 for them.
>
> This patch does just that, at the same time enabling the tests for
> Solaris/x86. Not doing this before looks like an oversight: there's no
> difference between SPARC and x86 in this regard.
>
> This introduces one failure on Solaris/amd64 (vers26b3), which I'll
> address in a followup.
>
> Tested no {sparc,sparcv9}-sun-solaris2.11, {i386,amd64}-pc-solaris2.11,
> and {x86_64,i686}-pc-linux-gnu.
>
> Ok for trunk?
I won't claim I properly understand the Solaris aspect here, but things
look plausible. So yes, okay to put in, albeit preferably together with
the patch dealing with the one new failure. I'll comment on that patch
separately.
Jan
More information about the Binutils
mailing list