bug-binutils
[Top][All Lists]
Advanced

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

[Bug ld/23935] [Regression] ld.bfd does not rescan fat LTO archives to r


From: cvs-commit at gcc dot gnu.org
Subject: [Bug ld/23935] [Regression] ld.bfd does not rescan fat LTO archives to resolve plugin-added references
Date: Tue, 26 Mar 2024 14:22:58 +0000

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

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

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

commit bb9a951fab7a30cc1209c6b8b1716c13456e8b1a
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Dec 6 11:45:41 2018 -0800

    Don't claim a fat IR object if no IR object should be claimed

    When the linker sees an input object containing nothing but IR during
    rescan, it should ignore it (LTO phase is over).  But if the input object
    is a fat IR object, which has non-IR code as well, it should be used to
    resolve references as if it did not contain any IR at all.  This patch
    adds lto_type to bfd and linker avoids claiming a fat IR object if no IR
    object should be claimed.

    bfd/

            PR ld/23935
            * archive.c (_bfd_compute_and_write_armap): Check bfd_get_lto_type
            instead of lto_slim_object.
            * elflink.c (elf_link_add_object_symbols): Likewise.
            * bfd.c (bfd_lto_object_type): New.
            (bfd): Remove lto_slim_object and add lto_type.
            (bfd_get_lto_type): New function.
            * elf.c (lto_section): Removed.
            (_bfd_elf_make_section_from_shdr): Don't set lto_slim_object.
            * format.c: (lto_section): New.
            (bfd_set_lto_type): New function.
            (bfd_check_format_matches): Call bfd_set_lto_type.
            * bfd-in2.h: Regenerated.

    binutils/

            PR ld/23935
            * nm.c (display_rel_file): Check bfd_get_lto_type instead of
            lto_slim_object.

    ld/

            PR ld/23935
            * ldmain.c (add_archive_element): Don't claim a fat IR object if
            no IR object should be claimed.
            * testsuite/ld-plugin/lto.exp (pr20103): Adjust fat IR test.
            Add PR ld/23935 test.
            * testsuite/ld-plugin/pr23935a.c: New file.
            * testsuite/ld-plugin/pr23935b.c: 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]