mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-21 04:42:53 +08:00
0e6a3f07f5
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.
22 lines
207 B
C
22 lines
207 B
C
#include <stdio.h>
|
|
|
|
int counter;
|
|
extern void foo (void);
|
|
extern void xxx (void);
|
|
|
|
void
|
|
bar (void)
|
|
{
|
|
}
|
|
|
|
int
|
|
main(void)
|
|
{
|
|
bar ();
|
|
foo ();
|
|
xxx ();
|
|
if (counter == 1)
|
|
printf ("PASS\n");
|
|
return 0;
|
|
}
|