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)

Reply via email to