https://sourceware.org/bugzilla/show_bug.cgi?id=33169
Bug ID: 33169
Summary: Some pr25617-1 tests FAIL on Solaris
Product: binutils
Version: 2.45
Status: NEW
Severity: normal
Priority: P2
Component: ld
Assignee: unassigned at sourceware dot org
Reporter: ro at gcc dot gnu.org
CC: hjl.tools at gmail dot com
Target Milestone: ---
Target: *-*-solaris2.11
Some of the pr25617-1 tests FAIL on Solaris (both SPARC and x86):
FAIL: Build pr25617-1 (-z nosectionheader, none)
FAIL: Build pr25617-1 (PIE, -z nosectionheader, none)
FAIL: Run pr25617-1 (PIE, -z nosectionheader, none)
FAIL: Build pr25617-1 (-z nosectionheader, objcopy)
FAIL: Build pr25617-1 (PIE, -z nosectionheader, objcopy)
FAIL: Run pr25617-1 (PIE, -z nosectionheader, objcopy)
UNRESOLVED: Update pr25617-1a-now-no-sec-hdr.so (objcopy)
FAIL: Build pr25617-1 (-z nosectionheader, strip)
FAIL: Build pr25617-1 (PIE, -z nosectionheader, strip)
FAIL: Run pr25617-1 (PIE, -z nosectionheader, strip)
UNRESOLVED: Update pr25617-1a-now-no-sec-hdr.so (strip)
There are primarily two issues here:
* The build failures happen like this:
/var/gcc/binutils/i386/obj/binutils-2.45-branch/ld/../binutils/readelf -lWSDs
tmpdir/pr25617-1-no-sec-hdr > dump.out
extra regexps in
/vol/src/gnu/binutils/hg/binutils-2.45-branch/local/ld/testsuite/ld-elf/pr25617-1-no-sec-hdr.rd
starting with "^.* FUNC +GLOBAL +DEFAULT.* UND
+(__libc_start_main(@.*|)|_?test)$"
EOF from dump.out
The tests expect
.* FUNC +GLOBAL +DEFAULT.* UND +(__libc_start_main(@.*|)|_?test)
twice. On Linux/i686, the dump output has
3: 00000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.0
(2)
6: 00000000 0 FUNC GLOBAL DEFAULT UND test
while Solaris has only
23: 00000000 0 FUNC GLOBAL DEFAULT UND test
The __libc_start_main part (and thus 2 matches) are clearly a glibc
implementation detail.
* The tests FAILs to execute:
ld.so.1: pr25617-1-pie-no-sec-hdr: fatal: relocation error: file
tmpdir/pr25617-1-pie-no-sec-hdr: symbol protected: referenced symbol not found
I've rerun it with LD_DEBUG=all,detail and see
04203: symbol=protected; lookup in file=tmpdir/pr25617-1-pie-no-sec-hdr [ ELF
]
04203: symbol=protected; lookup in file=tmpdir/pr25617-1a-now-no-sec-hdr.so [
ELF ]
04203: symbol=protected; lookup in file=/lib/libc.so.1 [ ELF ]
04203: in R_386_GLOB_DAT 0x313c protected
ld.so.1: pr25617-1-pie-no-sec-hdr: fatal: relocation error: file
tmpdir/pr25617-1-pie-no-sec-hdr: symbol protected: referenced symbol not found
The protected symbol *is* present in pr25617-1a-now-no-sec-hdr.so; it's not
obvious to my why ld.so.1 won't use it.
Maybe this whole test is pretty Linux-specific and should be restricted as
such?
--
You are receiving this mail because:
You are on the CC list for the bug.