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]

Re: gas 2.10.91 from 20000920 cvs is broken under hpux 10.20


> > Since the linker hasn't changed, I would have to guess that there is a
> > relocation problem with respect to the above call.  However, when I
> > include the relocation info in the assembly dump of emit-rtl.o, things
> > appear normal:
> > 
> >  20c:   e8 5f 1b dd     b,l 0 <reset_used_flags>,rp
> > 		 	20c: R_PCREL_CALL       reset_used_flags+0x40000000
> 
> The problem is the `0' in the above.  It should be 
> 
> 20c:   e8 5f 1b dd     b,l 214 <reset_used_flags+0x214>,rp
>  		       20c: R_PCREL_CALL       reset_used_flags+0x40000000

Reverting to a snapshot from 20000906, there was no relocation information
printed by objdump for the call:

 20c:   e8 5f 1b dd     b,l 0 <reset_used_flags>,rp
 210:   08 00 02 40     nop

A similar recursive call in copy_rtx_if_shared has the relocation info:

458:   e8 40 00 00     b,l 460 <copy_rtx_if_shared+0x460>,rp
                       458: R_PCREL_CALL       copy_rtx_if_shared+0x40000000
45c:   08 00 02 40     nop

Checking the new linked version of cc1, the code looks ok for the call to
reset_used_flags.  So, it appears that the R_PCREL_CALL relocation was added
incorrectly by the new version of gas to a "local" branch with its offset
setup by the assembler.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)

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