This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: ld 2.15.94.0.2.2 : prohibited cross reference to a local symbol.
- From: "Etienne Lorrain" <etienne dot lorrain at masroudeau dot com>
- To: binutils at sourceware dot org
- Cc: "H. J. Lu" <hjl at lucon dot org>
- Date: Thu, 29 Sep 2005 18:12:29 +0100 (BST)
- Subject: Re: ld 2.15.94.0.2.2 : prohibited cross reference to a local symbol.
- References: <1851.192.168.201.6.1127987332.squirrel@pc300> <20050929144946.GA23699@lucon.org>
- Reply-to: etienne dot lorrain at masroudeau dot com
> 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.