ld 2.15.94.0.2.2 : prohibited cross reference to a local symbol.
Etienne Lorrain
etienne.lorrain@masroudeau.com
Thu Sep 29 21:22:00 GMT 2005
> On Thu, Sep 29, 2005 at 10:48:52AM +0100, Etienne Lorrain wrote:
>> I did some more experiment on this one, and the problem also exists
>> in ld-2.16.1:
>>
>> [etienne@localhost linux-2.6.14-rc2-3]$ ../../projet/toolchain/bin/ld -v
>> GNU ld version 2.16.1
>>
>> After my patch I have those symbols in the library:
>> [etienne@localhost linux-2.6.14-rc2-3]$ readelf -s
>> arch/i386/kernel/built-in.o | grep memcpy
>> 493: 00000000 53 FUNC LOCAL DEFAULT 12 memcpy
>> 1407: 00000000 0 NOTYPE GLOBAL DEFAULT UND memcpy
>> 2077: 00000000 53 FUNC GLOBAL DEFAULT 12 code16_memcpy
>>
>
> Please open a bug report with a small testcase.
>
>
> H.J.
>
My problem is the small testcase: I am trying to reproduce with few
source files generating libraries and it works normally.
Probably a bug report begining with "download linux-2.6.13.tar.bz2" will
not be useful.
I am wondering about the name of this file: arch/i386/kernel/built-in.o
When generating Linux, it is a linked library and should be called
arch/i386/kernel/built-in.a (it contains all the objects in
arch/i386/kernel/*.o). If it were only the result of compiling
a file named arch/i386/kernel/built-in.c, it would be logical to unify
the local and the global memcpy symbol.
Would that ring a bell to someone - is the treatment different depending
on the extension of the file?
Thanks,
Etienne.
More information about the Binutils
mailing list