http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54709
Bug #: 54709 Summary: [4.8 Regression] r191713 breaks Firefox build Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: lto AssignedTo: unassig...@gcc.gnu.org ReportedBy: mar...@trippelsdorf.de r191713 thankfully fixed lto/profiledbootstrap, but building lto/profiled Firefox is broken because of this fix right now: ... gcc -shared -Wl,-soname -Wl,libnspr4.so -o libnspr4.so ./prvrsion.o io/./prfdcach.o io/./prmwait.o io/./prmapopt.o io/./priometh.o io/./pripv6.o io/. /prlayer.o io/./prlog.o io/./prmmap.o io/./prpolevt.o io/./prprf.o io/./prscanf.o io/./prstdio.o threads/./prcmon.o threads/./prrwlock.o threads/./pr tpd.o linking/./prlink.o malloc/./prmalloc.o malloc/./prmem.o md/./prosdep.o memory/./prshm.o memory/./prshma.o memory/./prseg.o misc/./pralarm.o mis c/./pratom.o misc/./prcountr.o misc/./prdtoa.o misc/./prenv.o misc/./prerr.o misc/./prerror.o misc/./prerrortable.o misc/./prinit.o misc/./prinrval.o misc/./pripc.o misc/./prlog2.o misc/./prlong.o misc/./prnetdb.o misc/./praton.o misc/./prolock.o misc/./prrng.o misc/./prsystem.o misc/./prthinfo.o misc/./prtpool.o misc/./prtrace.o misc/./prtime.o pthreads/./ptsynch.o pthreads/./ptio.o pthreads/./ptthread.o pthreads/./ptmisc.o md/unix/./unix.o m d/unix/./unix_errors.o md/unix/./uxproces.o md/unix/./uxrng.o md/unix/./uxshm.o md/unix/./uxwrap.o md/unix/./linux.o md/unix/./os_Linux_x86_64.o -fu se-linker-plugin -Wl,-O1,--hash-style=gnu,--no-keep-memory -fprofile-use -lpthread -ldl /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /tmp/ccdZgGDF.ltrans0.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'strlen' which may overflow at runtime; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /tmp/ccdZgGDF.ltrans1.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'strncmp' which may overflow at runtime; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /tmp/ccdZgGDF.ltrans2.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'strlen' which may overflow at runtime; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /tmp/ccdZgGDF.ltrans3.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'memset' which may overflow at runtime; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /tmp/ccdZgGDF.ltrans7.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'strlen' which may overflow at runtime; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /tmp/ccdZgGDF.ltrans8.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'memset' which may overflow at runtime; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /tmp/ccdZgGDF.ltrans10.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'strcpy' which may overflow at runtime; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /tmp/ccdZgGDF.ltrans11.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'memcpy' which may overflow at runtime; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /tmp/ccdZgGDF.ltrans12.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'memset' which may overflow at runtime; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /tmp/ccdZgGDF.ltrans13.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'memcpy' which may overflow at runtime; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /tmp/ccdZgGDF.ltrans14.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'memcpy' which may overflow at runtime; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /tmp/ccdZgGDF.ltrans15.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'memcpy' which may overflow at runtime; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /tmp/ccdZgGDF.ltrans16.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'free' which may overflow at runtime; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /tmp/ccdZgGDF.ltrans17.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'strlen' which may overflow at runtime; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /tmp/ccdZgGDF.ltrans18.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'strlen' which may overflow at runtime; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /tmp/ccdZgGDF.ltrans19.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'strlen' which may overflow at runtime; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /tmp/ccdZgGDF.ltrans20.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'memcpy' which may overflow at runtime; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /tmp/ccdZgGDF.ltrans21.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'memcpy' which may overflow at runtime; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /tmp/ccdZgGDF.ltrans22.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'memcpy' which may overflow at runtime; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'strlen' is not defined locally /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'strcpy' is not defined locally /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'strncmp' is not defined locally /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol '_exit' is not defined locally ... etc. Reduced to: arkus@x4 moz_testcase % cat test1.i foo () { memcpy (0, 1, 1); } markus@x4 moz_testcase % cat test2.i * memcpy (void *, void *, long); bar () { memcpy (0, 1, 1); } markus@x4 moz_testcase % gcc -w -fPIC -shared -fvisibility=hidden -O0 -flto test1.i test2.i /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /tmp/ccyZYF4P.ltrans0.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'memcpy' which may overflow at runtime; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'memcpy' is not defined locally collect2: error: ld returned 1 exit status (output from gold) markus@x4 moz_testcase % gcc -w -fPIC -shared -fvisibility=hidden -O0 -flto test1.i test2.i /tmp/ccpZAInI.ltrans0.ltrans.o: In function `bar.2365': ccpZAInI.ltrans0.o:(.text+0x29): undefined reference to `memcpy' /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: a.out: hidden symbol `memcpy' isn't defined /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/../../../../x86_64-pc-linux-gnu/bin/ld: final link failed: Bad value collect2: error: ld returned 1 exit status (output from ld.bfd)