bug-binutils
[Top][All Lists]
Advanced

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

[Bug ld/24873] gcc -flto objects result in --start-group … --end-group f


From: cvs-commit at gcc dot gnu.org
Subject: [Bug ld/24873] gcc -flto objects result in --start-group … --end-group failure to include --as-needed libraries
Date: Tue, 06 Aug 2019 06:43:59 +0000

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

--- Comment #11 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
The master branch has been updated by Alan Modra <address@hidden>:

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

commit b02c4f162335ed055964f603ba3aca18b0e5c5bf
Author: Alan Modra <address@hidden>
Date:   Tue Aug 6 15:23:28 2019 +0930

    PR24873, gcc -flto objects result in --start-group .. --end-group failure
to include --as-needed libraries

    Reloading of archives (and checking --as-needed DSOs again) is
    disabled until we hit the plugin insert point.  It's necessary to do
    that because in a case like lib1.a lto.o lib2.a where lib1.a and
    lib2.a contain duplicate symbols, we want the lto.o recompiled object
    to pull in objects from lib2.a as necessary, but not from lib1.a.
    Unfortunately this heuristic fails when the insert point is inside a
    group, because ld actually loads the symbols from the recompiled
    object before running over the contours of the script, thus missing
    the fact that new undefs appeared in the group.

        PR 24873
        * ldlang.c (plugin_undefs): New static var.
        (open_input_bfds <lang_group_statement_enum>): Loop on
        plugin_undefs and hitting plugin_insert point.
        (lang_process <lto_plugin_active>): Set plugin_undefs.

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