This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: [PATCH/RFA] sh-elf: Unnecessary relocations
- From: kaz Kojima <kkojima at rr dot iij4u dot or dot jp>
- To: binutils at sources dot redhat dot com
- Date: Fri, 27 Sep 2002 07:29:53 +0900
- Subject: Re: [PATCH/RFA] sh-elf: Unnecessary relocations
- References: <20020926215926.GA8337@nevyn.them.org>
Daniel Jacobowitz <drow@mvista.com> wrote:
> On Fri, Sep 27, 2002 at 06:26:52AM +0900, kaz Kojima wrote:
>> Hi,
>>
>> Current gas for sh-elf generates some unnecessary PC relative
>> relocations when the symbol is global. For example, I've got
>> two relocations:
>>
>> RELOCATION RECORDS FOR [.text]:
>> OFFSET TYPE VALUE
>> 00000000 R_SH_DIR8WPL foo
>> 00000006 R_SH_IND12W foo
>>
>> for the following small source
>>
>> .text
>> mova foo,r0
>> rts
>> nop
>> .global foo
>> foo:
>> bra foo
>> nop
>>
>> and slightly old gas doesn't make such relocations for the same
>> source. With the following patch, gas shows the same behavior
>> as the old one. Regression tested on sh-unknown-linux-gnu.
>
> Isn't that incorrect ELF, though? Can't the definition of foo end up
> coming from another shared object?
Yes, it's a correct ELF. My point is that these relocations are
unnecessary in this case.
kaz