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: arm-wince-pe support resurrection


Hello Nick.

On Mon, 15 Dec 2003, Nick Clifton wrote:

> > *************** coff_arm_relocate_section (output_bfd, i
> > *** 1269,1280 ****
> >       	       complain_overflow_signed,
> >       	       aoutarm_fix_pcrel_26 ,
> >       	       "ARM_26",
> > !     	       FALSE,
> >       	       0x00ffffff,
> >       	       0x00ffffff,
> > !     	       FALSE);
> >
> >             addend -= rel->r_vaddr - input_section->vma;
> >             howto = &fake_arm26_reloc;
> >           }
> >
> > --- 1270,1286 ----
> >       	       complain_overflow_signed,
> >       	       aoutarm_fix_pcrel_26 ,
> >       	       "ARM_26",
> > !     	       TRUE,            /* partial_inplace */
> >       	       0x00ffffff,
> >       	       0x00ffffff,
> > !     	       FALSE);          /* pcrel_offset */
> >
> >             addend -= rel->r_vaddr - input_section->vma;
> > + #ifdef ARM_WINCE
> > +           /* FIXME: I don't know why, but the hack is necessary for correct
> > +                     generation of bl's instruction offset. */
> > +           addend -= 8;
> > + #endif
> >             howto = &fake_arm26_reloc;
> >           }
>
>
> This looks like a hack.  It would be much better if we could find out
> why this was needed and fix the *real* bug.  Besides, it looks like
> this problem has already been encountered before.  The code just
> beyond this patch reads:
>
>   #ifdef ARM_WINCE
>       /* MS ARM-CE makes the reloc relative to the opcode's pc, not
> 	 the next opcode's pc, so is off by one.  */
>   #if 0 /* This appears to have been true for WINCE 2.0, but it is not
> 	 true for WINCE 3.0.  */
>       if (howto->pc_relative && !info->relocatable)
> 	addend -= 8;
>   #endif
>   #endif
>
> So - it looks like this might be dependent upon the version of WinCE
> that you are using.  Which version do you use ?

WindowsCE.net Version 4.2

Note that my hack with pc adjustment, and the switched off one apply
to mutually exclusive cases (based on the info->relocatable field).

As I understand, in my case, the relocation is resolved during creation
of object files with GNU as. So the code is not further affected by
WinCE tools.


...Bye..Dmitry.


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