mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-05 21:50:21 +08:00
ld: Properly override the IR definition
We change the previous definition in the IR object to undefweak only after all LTO symbols have been read. include/ PR ld/26262 PR ld/26267 * bfdlink.h (bfd_link_info): Add lto_all_symbols_read. ld/ PR ld/26262 PR ld/26267 * ldlang.c (lang_process): Set lto_all_symbols_read after all LTO IR symbols have been read. * plugin.c (plugin_notice): Override the IR definition only if all LTO IR symbols have been read or the new definition is non-weak and the the IR definition is weak * testsuite/ld-plugin/lto.exp: Run PR ld/26262 and ld/26267 tests. * testsuite/ld-plugin/pr26262a.c: New file. * testsuite/ld-plugin/pr26262b.c: Likewise. * testsuite/ld-plugin/pr26262c.c: Likewise. * testsuite/ld-plugin/pr26267.err: Likewise. * testsuite/ld-plugin/pr26267a.c: Likewise. * testsuite/ld-plugin/pr26267b.c: Likewise. * testsuite/ld-plugin/pr26267c.c: Likewise.
This commit is contained in:
@ -7886,6 +7886,7 @@ lang_process (void)
|
||||
if (plugin_call_all_symbols_read ())
|
||||
einfo (_("%F%P: %s: plugin reported error after all symbols read\n"),
|
||||
plugin_error_plugin ());
|
||||
link_info.lto_all_symbols_read = TRUE;
|
||||
/* Open any newly added files, updating the file chains. */
|
||||
plugin_undefs = link_info.hash->undefs_tail;
|
||||
open_input_bfds (*added.tail, OPEN_BFD_NORMAL);
|
||||
|
Reference in New Issue
Block a user