Hi Guys,
I have encountered a discrepancy between GNU LD and GOLD with regard to the
PROVIDE keyword. If the provided symbol is not referenced in an input object
file then GOLD will not define it, even if it is referenced elsewhere in the
linker script.
To reproduce follow these steps:
% touch empty.c
% gcc -c empty.c
% cat <<EOF >provide.ld
SECTIONS
{
PROVIDE (foo = 0);
.bar :
{
LONG (foo);
}
}
EOF
% ld -T provide.ld empty.o
% gold -T provide.ld empty.o
gold: error: undefined symbol 'foo' referenced in expression
Cheers
Nick
--
Summary: GOLD: PROVIDE: does not provide symbols only referenced
in linker script
Product: binutils
Version: 2.21 (HEAD)
Status: NEW
Severity: normal
Priority: P2
Component: gold
AssignedTo: ian at airs dot com
ReportedBy: nickc at redhat dot com
CC: bug-binutils at gnu dot org
GCC build triplet: any
GCC host triplet: any
GCC target triplet: any
http://sourceware.org/bugzilla/show_bug.cgi?id=11855
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
_______________________________________________
bug-binutils mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-binutils