bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/21334] New: [MIPS] Undefined hidden symbols cause assertion fail


From: james410 at cowgill dot org.uk
Subject: [Bug ld/21334] New: [MIPS] Undefined hidden symbols cause assertion failure bfd/elfxx-mips.c:3860
Date: Thu, 30 Mar 2017 10:59:56 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=21334

            Bug ID: 21334
           Summary: [MIPS] Undefined hidden symbols cause assertion
                    failure bfd/elfxx-mips.c:3860
           Product: binutils
           Version: 2.28
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: ld
          Assignee: unassigned at sourceware dot org
          Reporter: james410 at cowgill dot org.uk
  Target Milestone: ---

Originally from the Debian supermin package:
https://buildd.debian.org/status/fetch.php?pkg=supermin&arch=mipsel&ver=5.1.17-7%2Bb1&stamp=1490538317&raw=0

And possibly related to a bug mentioned in PR/21233

Attempting to link any object containing an undefined hidden symbol causes ld
to give an assertion failure.

$ cat test.c
extern int a __attribute__((visibility("hidden")));

int x(void)
{
    a = 1;
}

$ mipsel-linux-gnu-gcc -c test.c
$ readelf --syms test.o
Symbol table '.symtab' contains 14 entries:
   Num:    Value  Size Type    Bind   Vis      Ndx Name
     0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
     1: 00000000     0 FILE    LOCAL  DEFAULT  ABS test.c
     2: 00000000     0 SECTION LOCAL  DEFAULT    1
     3: 00000000     0 SECTION LOCAL  DEFAULT    3
     4: 00000000     0 SECTION LOCAL  DEFAULT    4
     5: 00000000     0 SECTION LOCAL  DEFAULT    9
     6: 00000000     0 SECTION LOCAL  DEFAULT    5
     7: 00000000     0 SECTION LOCAL  DEFAULT    6
     8: 00000000     0 SECTION LOCAL  DEFAULT    7
     9: 00000000     0 SECTION LOCAL  DEFAULT   10
    10: 00000000     0 SECTION LOCAL  DEFAULT   11
    11: 00000000    60 FUNC    GLOBAL DEFAULT    1 x
    12: 00000000     0 OBJECT  GLOBAL DEFAULT  UND _gp_disp
    13: 00000000     0 NOTYPE  GLOBAL HIDDEN   UND a
$ ../build-mips/ld/ld-new test.o
../build-mips/ld/ld-new: warning: cannot find entry symbol __start; defaulting
to 00000000004000f0
../build-mips/ld/ld-new: BFD (GNU Binutils) 2.28.51.20170330 assertion fail
../../binutils-gdb/bfd/elfxx-mips.c:3860
test.o: In function `x':
test.c:(.text+0x18): undefined reference to `a'

The bug in supermin was actually caused by musl's use of this feature in
__libc_start_main, so I suspect that nothing will be able to link against musl
libc when using binutils 2.28.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]