bug-binutils
[Top][All Lists]
Advanced

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

[Bug gold/18288] gold does not handle common symbols in shared libraries


From: ccoutant at gmail dot com
Subject: [Bug gold/18288] gold does not handle common symbols in shared libraries correctly
Date: Sun, 07 Jun 2015 13:29:43 +0000

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

Cary Coutant <ccoutant at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |ASSIGNED
            Summary|linker -s output suboptimal |gold does not handle common
                   |                            |symbols in shared libraries
                   |                            |correctly

--- Comment #20 from Cary Coutant <ccoutant at gmail dot com> ---
The library libopendbx.so has an allocated common symbol:

    24: 0000000000203090     1 COMMON  GLOBAL DEFAULT   23 __gnu_lto_v1

(This is a marker symbol emitted by GCC during LTO.)

Gold is doing two things wrong here:

(1) It's processing the symbol from the shared library as a normal common
symbol, and trying to allocate a 1-byte common block with alignment of
0x203090. Instead, we should simply treat the symbol as a regular defined
symbol.

(2) In mistakenly taking the symbol's address as a requested alignment, we end
up with some weird address layout because the alignment is not a multiple of
the page size. That results in the unusually large alignment of the .bss
section, and also results in the internal error in set_offset reported in the
more recent comments.

-- 
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]