This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug lto/54709] New: [4.8 Regression] r191713 breaks Firefox build
- From: "markus at trippelsdorf dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 25 Sep 2012 16:05:13 +0000
- Subject: [Bug lto/54709] New: [4.8 Regression] r191713 breaks Firefox build
- Auto-submitted: auto-generated
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: unassigned@gcc.gnu.org
ReportedBy: markus@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)