https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96385
H.J. Lu <hjl.tools at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #48956|0 |1 is obsolete| | --- Comment #9 from H.J. Lu <hjl.tools at gmail dot com> --- Created attachment 48975 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48975&action=edit A testcase [hjl@gnu-cfl-2 pr26324]$ make gcc -B./ -O2 -g -flto -ffat-lto-objects -c -o pr26324a.o pr26324a.c gcc -B./ -O2 -g -fPIC -c -o pr15146c.o pr15146c.c gcc -B./ -O2 -g -fPIC -c -o pr15146b.o pr15146b.c gcc -B./ -shared -o pr15146b.so pr15146b.o gcc -B./ -shared -o pr15146c.so pr15146c.o pr15146b.so gcc -B./ -O2 -g -o x -Wl,-R,. \ -Wl,--no-copy-dt-needed-entries -Wl,--no-as-needed pr26324a.o pr15146c.so ./ld: /tmp/ccCGQCqp.debug.temp.o: undefined reference to symbol 'xxx' ./ld: ./pr15146b.so: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make: *** [Makefile:20: x] Error 1 [hjl@gnu-cfl-2 pr26324]$ -flto -ffat-lto-objects is the key.