http://sourceware.org/bugzilla/show_bug.cgi?id=12365
Summary: undefined references produced by linker plugin are
silently ignored
Product: binutils
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: ld
AssignedTo: [email protected]
ReportedBy: [email protected]
Compiling memcpy-asm testcase from GCC testsuite with current GCC mainline and
-O2 -flto results in call to my_memcpy that is not defined:
./xgcc -B ./ -O2 memops-asm*.c
/abuild/jh/trunk-3/gcc/testsuite/gcc.c-torture/execute/builtins/lib/main.c -g
-O0 -flto --save-temps -fdump-ipa-all-details -save-temps
evans:/abuild/jh/trunk-3/build-inst2/gcc/:[0]# grep memcpy *.s
ccNd9GvG.ltrans0.s: .globl memcpy
ccNd9GvG.ltrans0.s: .type memcpy, @function
ccNd9GvG.ltrans0.s:memcpy:
ccNd9GvG.ltrans0.s: call my_memcpy.2055
ccNd9GvG.ltrans0.s: .size memcpy, .-memcpy
ccNd9GvG.ltrans0.s: .type my_memcpy.2055, @function
ccNd9GvG.ltrans0.s:my_memcpy.2055:
ccNd9GvG.ltrans0.s: .size my_memcpy.2055, .-my_memcpy.2055
ccNd9GvG.ltrans0.s: call my_memcpy
ccNd9GvG.ltrans0.s: call my_memcpy
ccNd9GvG.ltrans0.s: .string "memcpy"
ccNd9GvG.ltrans0.s: .string "my_memcpy"
this is GCC bug where my_memcpy is once defined as alias and once as normal
function and declarations are not merged.
This however should result in linktime error instead of producing binary.
In the binary the call to my_memcpy is linked to bogus destination:
400a41: e8 9c fb ff ff callq 4005e2 <a>
I assume this is caused by fact that my_memcpy appears in original LTO symbol
tables.
Honza
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
bug-binutils mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-binutils