https://sourceware.org/bugzilla/show_bug.cgi?id=19842
--- Comment #15 from H.J. Lu <hjl.tools at gmail dot com> ---
Here is the difference between gold and ld:
[hjl@gnu-6 test]$ cat foo.c
#include <stdio.h>
void foo () __attribute__ ((weak));
void
foo ()
{
printf ("Non-LTO\n");
}
void
bar ()
{
}
[hjl@gnu-6 test]$ cat foo1.c
#include <stdio.h>
void foo () __attribute__ ((weak));
void
foo ()
{
printf ("LTO\n");
}
[hjl@gnu-6 test]$ cat main.c
extern void foo ();
extern void bar ();
int
main ()
{
foo ();
bar ();
return 0;
}
[hjl@gnu-6 test]$ make
gcc -B./ -O2 -g -c -o main.o main.c
gcc -B./ -O2 -g -flto -c -o foo1.o foo1.c
gcc -B./ -o x main.o foo1.o libfoo.a
gcc -B./ -fuse-ld=gold -o y main.o foo1.o libfoo.a
./x
Non-LTO
./y
LTO
[hjl@gnu-6 test]$
I am not sure if ld's behavior is intentional or not.
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
bug-binutils mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-binutils