bug-binutils
[Top][All Lists]
Advanced

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

[Bug binutils/26389] nm print "c" for a common symbol with -flto and -fc


From: cvs-commit at gcc dot gnu.org
Subject: [Bug binutils/26389] nm print "c" for a common symbol with -flto and -fcommon
Date: Sat, 15 Aug 2020 13:39:43 +0000

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

--- Comment #3 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
The binutils-2_35-branch branch has been updated by Alan Modra
<amodra@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6183270ab45614eef9f33f58a3e01fdd0b525c6b

commit 6183270ab45614eef9f33f58a3e01fdd0b525c6b
Author: Alan Modra <amodra@gmail.com>
Date:   Sat Aug 15 09:42:44 2020 +0930

    PR26389, nm prints "c" for a common symbol with -flto and -fcommon

    git commit 49d9fd42acef chose to make nm print 'C' for the normal
    common section, and 'c' for other commons.  This was an attempt to
    make common symbols in .scommon and other small common sections show
    a 'c' type without a section name comparison, but it failed for
    nm --plugin on lto objects where normal common symbols are stashed in
    a "plug" section.  It's also wrong for large common symbols.  So
    instead set SEC_SMALL_DATA on sections created for small commons, and
    key off that flag to show 'c' type.  If your ELF target doesn't have
    an elf_backend_symbol_processing function, then you won't see 'c' for
    symbols in .scommon.

    Note that due to bfd_decode_symclass decoding common symbols without
    a chance for coff_section_type to treat .scommon specially, then
    having .scommon in the array of special sections handled by
    coff_section_type prior to 49d9fd42acef was entirely ineffective.
    That fact escaped me when writing 49d9fd42acef.  Unless .scommon
    didn't have SEC_IS_COMMON set, which would be a little weird.

            PR 26389
            * syms.c (bfd_decode_symclass): Choose 'c' for commons only when
            SEC_SMALL_DATA.
            * elf32-m32r.c (_bfd_m32r_elf_symbol_processing): Set
SEC_SMALL_DATA
            on small common section.
            * elf32-score.c (s3_bfd_score_elf_symbol_processing): Likewise.
            * elf32-score7.c (s7_bfd_score_elf_symbol_processing): Likewise.
            * elf32-tic6x.c (elf32_tic6x_symbol_processing): Likewise.
            * elf32-v850.c (v850_elf_symbol_processing): Likewise.
            * elfxx-mips.c (_bfd_mips_elf_symbol_processing): Likewise.
            * ecoff.c (ecoff_set_symbol_info, ecoff_link_add_externals):
Likewise.

    (cherry picked from commit 4d1823674eedf267c7cafac2b923256db0b10ac8)

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