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

--- Comment #5 from LRN <lrn1986 at gmail dot com> ---
So far my guess is that the difference is in coff_link_check_ar_symbols():

When a "normal" static library (i've made a version of libfoo.a without -flto)
is being loaded, coff_link_check_ar_symbols() lists all its symbols, finds all
global or common symbols, gets their names, and resolves them, if undefined.
"Normal" libfoo has a global symbol esym == "_foo" (with name "_foo"), which
passes all checks, and eventually is fed to add_archive_element().

LTO libfoo.a does not have that. It has a number of local 'section' symbols
(".text", ".bss" and such), a number of local symbols with esym[0] == 0 and two
common symbols with esym[0] == 0 and names "___gnu_lto_v1" and
"___gnu_lto_slim".
None of them is the right thing, as far as coff_link_check_ar_symbols() is
concerned.

My guess is that a plugin should hook up at some point (i have not been able
the identify the place where this "some point" is in the code) and handle the
symbols, but it doesn't, for some reason.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to