bug-binutils
[Top][All Lists]
Advanced

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

[Bug gold/11350] New: Broken versioned symbols in the output for the rel


From: vkutuzov at accesssoftek dot com
Subject: [Bug gold/11350] New: Broken versioned symbols in the output for the relocatable objects
Date: 4 Mar 2010 23:43:12 -0000

When linking a relocatable object, where any input object has the defined global
versioned symbols, gold cuts the symbol version for the symbols in the output
symbol table. It means, that kind of symbols lose the version information in the
output object; also, if the input object has two versions of one symbol --
versioned and non-versioned -- the output object will contain two symbols with
identical names (duplicate).

There is some example for GNU gold (GNU Binutils 2.20.51.20100304) 1.9

This is a part of readelf output for the input object (readelf -sW divdi3.os),
which shows the versioned and non-versioned symbols for __divdi3:

Symbol table '.symtab' contains 34 entries:
   Num:    Value  Size Type    Bind   Vis      Ndx Name
...
    20: 000005dc   120 FUNC    GLOBAL DEFAULT    1 __divdi3
...
    30: 000005dc   120 FUNC    GLOBAL DEFAULT    1 address@hidden
...

Link the input object as relocatable with the following command:

ld -r -o divdi3.out divdi3.os


This is a part of readelf output for the result object (readelf -sW divdi3.out),
which shows the symbol duplicates for __divdi3:

Symbol table '.symtab' contains 27 entries:
   Num:    Value  Size Type    Bind   Vis      Ndx Name
...
    13: 000005dc   120 FUNC    GLOBAL DEFAULT    1 __divdi3
...
    24: 000005dc   120 FUNC    GLOBAL DEFAULT    1 __divdi3
...

(I will attach the complete readelf outputs to the bug report)

So, as far as I understood, it happens because of two linked problems: the
Symbol_table::sized_write_symbol method always looks for the non-versioned
version of symbol in the symbol names string pool; and the symbol names string
pool never gets a string representation for that kind of versioned symbols (i.e.
the strings like "address@hidden").

-- 
           Summary: Broken versioned symbols in the output for the
                    relocatable objects
           Product: binutils
           Version: 2.21 (HEAD)
            Status: NEW
          Severity: normal
          Priority: P2
         Component: gold
        AssignedTo: ian at airs dot com
        ReportedBy: vkutuzov at accesssoftek dot com
                CC: bug-binutils at gnu dot org
  GCC host triplet: i686-pc-linux-gnu


http://sourceware.org/bugzilla/show_bug.cgi?id=11350

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.




reply via email to

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