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.