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.

Reply via email to