bug-binutils
[Top][All Lists]
Advanced

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

[Bug gold/24526] [gold] Generalize GC support for SHF_LINK_ORDER


From: cvs-commit at gcc dot gnu.org
Subject: [Bug gold/24526] [gold] Generalize GC support for SHF_LINK_ORDER
Date: Fri, 07 Feb 2020 02:09:16 +0000

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

--- Comment #3 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
The master branch has been updated by H.J. Lu <address@hidden>:

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

commit b7d072167715829eed0622616f6ae0182900de3e
Author: H.J. Lu <address@hidden>
Date:   Thu Feb 6 18:04:58 2020 -0800

    ELF: Support the section flag 'o' in .section directive

    As shown in

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

    --gc-sections will silently remove __patchable_function_entries section
    and generate corrupt result.  This patch adds the section flag 'o' to
    .section directive:

    .section __patchable_function_entries,"awo",@progbits,foo
    .section __patchable_function_entries,"awoG",@progbits,foo,foo,comdat
    .section __patchable_function_entries,"awo",@progbits,bar,unique,4
    .section
__patchable_function_entries,"awoG",@progbits,foo,foo,comdat,unique,1

    which specifies the symbol name which the section references.  Assmebler
    will set its elf_linked_to_section to a local section where the symbol
    is defined.

    Linker is updated to call mark_hook if gc_mark of any of its linked-to
    sections is set after all sections, except for backend specific ones,
    have been garbage collected.

    bfd/

        PR gas/25381
        * bfd-in2.h: Regenerated.
        * elflink.c (_bfd_elf_gc_mark_extra_sections): Call mark_hook
        on section if gc_mark of any of its linked-to sections is set
        and don't set gc_mark again.
        * section.c (asection): Add linked_to_symbol_name to map_head
        union.

    gas/

        PR gas/25381
        * config/obj-elf.c (get_section): Also check
        linked_to_symbol_name.
        (obj_elf_change_section): Also set map_head.linked_to_symbol_name.
        (obj_elf_parse_section_letters): Handle the 'o' flag.
        (build_group_lists): Renamed to ...
        (build_additional_section_info): This.  Set elf_linked_to_section
        from map_head.linked_to_symbol_name.
        (elf_adjust_symtab): Updated.
        * config/obj-elf.h (elf_section_match): Add linked_to_symbol_name.
        * doc/as.texi: Document the 'o' flag.
        * testsuite/gas/elf/elf.exp: Run PR gas/25381 tests.
        * testsuite/gas/elf/section18.d: New file.
        * testsuite/gas/elf/section18.s: Likewise.
        * testsuite/gas/elf/section19.d: Likewise.
        * testsuite/gas/elf/section19.s: Likewise.
        * testsuite/gas/elf/section20.d: Likewise.
        * testsuite/gas/elf/section20.s: Likewise.
        * testsuite/gas/elf/section21.d: Likewise.
        * testsuite/gas/elf/section21.l: Likewise.
        * testsuite/gas/elf/section21.s: Likewise.

    ld/

        PR ld/24526
        PR ld/25021
        PR ld/25490
        * testsuite/ld-elf/elf.exp: Run PR ld/25490 tests.
        * testsuite/ld-elf/pr24526.d: New file.
        * testsuite/ld-elf/pr24526.s: Likewise.
        * testsuite/ld-elf/pr25021.d: Likewise.
        * testsuite/ld-elf/pr25021.s: Likewise.
        * testsuite/ld-elf/pr25490-2-16.rd: Likewise.
        * testsuite/ld-elf/pr25490-2-32.rd: Likewise.
        * testsuite/ld-elf/pr25490-2-64.rd: Likewise.
        * testsuite/ld-elf/pr25490-2.s: Likewise.
        * testsuite/ld-elf/pr25490-3-16.rd: Likewise.
        * testsuite/ld-elf/pr25490-3-32.rd: Likewise.
        * testsuite/ld-elf/pr25490-3-64.rd: Likewise.
        * testsuite/ld-elf/pr25490-3.s: Likewise.
        * testsuite/ld-elf/pr25490-4-16.rd: Likewise.
        * testsuite/ld-elf/pr25490-4-32.rd: Likewise.
        * testsuite/ld-elf/pr25490-4-64.rd: Likewise.
        * testsuite/ld-elf/pr25490-4.s: Likewise.
        * testsuite/ld-elf/pr25490-5-16.rd: Likewise.
        * testsuite/ld-elf/pr25490-5-32.rd: Likewise.
        * testsuite/ld-elf/pr25490-5-64.rd: Likewise.
        * testsuite/ld-elf/pr25490-5.s: Likewise.
        * testsuite/ld-elf/pr25490-6-16.rd: Likewise.
        * testsuite/ld-elf/pr25490-6-32.rd: Likewise.
        * testsuite/ld-elf/pr25490-6-64.rd: Likewise.
        * testsuite/ld-elf/pr25490-6.s: Likewise.

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