http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54625
--- Comment #7 from Markus Trippelsdorf <markus at trippelsdorf dot de> 2012-09-25 14:24:58 UTC --- (In reply to comment #6) > The testcases are also fixed by > > Index: gcc/lto-symtab.c > =================================================================== > --- gcc/lto-symtab.c (revision 191700) > +++ gcc/lto-symtab.c (working copy) > @@ -629,7 +629,8 @@ lto_symtab_merge_cgraph_nodes_1 (symtab_ > > if (!symtab_real_symbol_p (e)) > continue; > - if (symtab_function_p (e)) > + if (symtab_function_p (e) > + && !DECL_BUILT_IN (e->symbol.decl)) > lto_cgraph_replace_node (cgraph (e), cgraph (prevailing)); > if (symtab_variable_p (e)) > lto_varpool_replace_node (varpool (e), varpool (prevailing)); > > now testing that instead of the symtab.c hunks. Thanks. This fixes lto/profiledbootstrap. Firefox however doesn't build: ... 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 /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 /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 /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 /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 /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 /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 'memcpy' 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 'memcpy' 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 'memcpy' 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 'memset' 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 'strlen' is not defined locally ... etc.