[Bug middle-end/93195] -fpatchable-function-entries : __patchable_function_entries should consider comdat groups

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Dec 2 13:38:52 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93195

--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by H.J. Lu <hjl@gcc.gnu.org>:

https://gcc.gnu.org/g:694d4a6d0c466d0fbc97920a9c6641a7b349ca35

commit r11-5656-g694d4a6d0c466d0fbc97920a9c6641a7b349ca35
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Dec 2 05:32:37 2020 -0800

    Use the section flag 'o' for __patchable_function_entries

    This commit in GNU binutils 2.35:

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

    added the section flag 'o' to .section directive:

    .section __patchable_function_entries,"awo",@progbits,foo

    which specifies the symbol name which the section references.  Assembler
    creates a unique __patchable_function_entries section with the section,
    where foo is defined, as its linked-to section.  Linker keeps a section
    if its linked-to section is kept during garbage collection.

    This patch checks assembler support for the section flag 'o' and uses
    it to implement __patchable_function_entries section.  Since Solaris may
    use GNU assembler with Solairs ld.  Even if GNU assembler supports the
    section flag 'o', it doesn't mean that Solairs ld supports it.  This
    feature is disabled for Solairs targets.

    gcc/

            PR middle-end/93195
            PR middle-end/93197
            * configure.ac (HAVE_GAS_SECTION_LINK_ORDER): New.  Define 1 if
            the assembler supports the section flag 'o' for specifying
            section with link-order.
            * output.h (SECTION_LINK_ORDER): New.  Defined to 0x8000000.
            (SECTION_MACH_DEP): Changed from 0x8000000 to 0x10000000.
            * targhooks.c (default_print_patchable_function_entry): Pass
            SECTION_LINK_ORDER to switch_to_section if the section flag 'o'
            works.  Pass current_function_decl to switch_to_section.
            * varasm.c (default_elf_asm_named_section): Use 'o' flag for
            SECTION_LINK_ORDER if assembler supports it.
            * config.in: Regenerated.
            * configure: Likewise.
            * doc/sourcebuild.texi: Document o_flag_in_section.

    gcc/testsuite/

            PR middle-end/93195
            * g++.dg/pr93195a.C: New test.
            * g++.dg/pr93195b.C: Likewise.
            * lib/target-supports.exp
            (check_effective_target_o_flag_in_section): New proc.


More information about the Gcc-bugs mailing list