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

H.J. Lu hjl.tools@gmail.com
Sun Aug 16 12:46:42 GMT 2020


On Fri, Aug 14, 2020 at 10:50 PM Alan Modra via Binutils
<binutils@sourceware.org> wrote:
>
> 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.
>

I am checking in this patch to add a test.

-- 
H.J.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-ld-Add-a-PR-binutils-26389-test.patch
Type: text/x-patch
Size: 2100 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20200816/a2cc2817/attachment.bin>


More information about the Binutils mailing list