diff options
author | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2025-08-19 15:34:44 +0200 |
---|---|---|
committer | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2025-08-19 15:34:44 +0200 |
commit | 9ca011e55e76471a848a132ee3055a468feb4344 (patch) | |
tree | c024476d75ac60402308deef56901e013de4bab2 /gdb/common/array-view.h | |
parent | 56e7e4ca3b87828509156d9dd84285bf8ba004cb (diff) | |
download | binutils-9ca011e55e76471a848a132ee3055a468feb4344.zip binutils-9ca011e55e76471a848a132ee3055a468feb4344.tar.gz binutils-9ca011e55e76471a848a132ee3055a468feb4344.tar.bz2 |
ld: testsuite: Fix ld-elfvers tests on Solaris
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.
2025-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
ld:
* emultempl/solaris2.em (elf_solaris2_before_allocation): Mark
global symbols as generated by linker script.
* testsuite/ld-elfvers/vers.exp: Enable on *-*-solaris2* rather
than sparc*-*-solaris2* only.
Diffstat (limited to 'gdb/common/array-view.h')
0 files changed, 0 insertions, 0 deletions