This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[gold commit] PR 18288: Fix incorrect handling of STT_COMMON symbols in shared libraries


The gABI allows STT_COMMON symbols to appear in executables and shared
objects, so that the dynamic loader can resolve commons across modules.
When reading a shared object, however, an STT_COMMON symbol should be
treated as a regular definition at link time.

In a relocatable object, the gABI requires that any STT_COMMON symbols
must also be defined in the special SHN_COMMON section (which we extend
to include target-specific small and large common sections). Thus,
there is no need for gold to treat STT_COMMON symbols as common unless
the st_shndx field is also set to a common section.

-cary


2015-06-07  Cary Coutant  <ccoutant@gmail.com>

gold/
        PR gold/18288
        * resolve.cc (symbol_to_bits): Remove type parameter; adjust all
        callers. Don't use STT_COMMON to check for common symbols.
        (Symbol_table::resolve): Warn if relocatable object has STT_COMMON
        symbol that's not in a common section.
        * symtab.h (Symbol::is_common): Don't use STT_COMMON to check for
        common symbols.

Attachment: stt-common.patch
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]