https://sourceware.org/bugzilla/show_bug.cgi?id=27441
Michael Matz <matz at suse dot de> changed:
What |Removed |Added
----------------------------------------------------------------------------
Assignee|ccoutant at gmail dot com |unassigned at
sourceware dot org
Component|gold |ld
--- Comment #3 from Michael Matz <matz at suse dot de> ---
So, like this:
% cat lib1.c
int func1(void) { return 1; }
int func2(void) { return 2; }
% cat lib2.c
int __attribute__((weak)) func1(void) { return 3; }
% cat bad4.c
extern int func1(void);
extern int func2(void);
int callthem(void)
{
return func1() + func2();
}
% gcc -fPIC -shared -o lib1.so lib1.c
% gcc -fPIC -shared -o lib2.so lib2.c
% gcc -fPIC -Wl,--as-needed -fno-lto -shared -o good.so bad4.c -L. -l2 -l1
% readelf-dW good.so | grep lib
0x0000000000000001 (NEEDED) Shared library: [lib2.so]
0x0000000000000001 (NEEDED) Shared library: [lib1.so]
% gcc -fPIC -Wl,--as-needed -flto -shared -o bad.so bad4.c -L. -l2 -l1
% readelf -dW bad.so | grep lib
0x0000000000000001 (NEEDED) Shared library: [lib1.so]
(I'm resetting component to ld again, as I think the above shows the problem
clearly enough. It's still possible that it's the gcc LTO plugin at fault,
though)
--
You are receiving this mail because:
You are on the CC list for the bug.