This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH/RFA] sh-elf: Unnecessary relocations


On Fri, Sep 27, 2002 at 07:29:53AM +0900, kaz Kojima wrote:
> 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.

After your patch gas would not generate any relocations for that
object, right?  Why can't these be overridden in another shared object?
On i386, for the corresponding testcase, foo can be overridden
elsewhere.

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]