Remainder of fixes for ARM WINCE support

This commit is contained in:
Nick Clifton 2004-01-09 13:59:55 +00:00
parent ef11303ebf
commit 44e8895283
2 changed files with 22 additions and 4 deletions

View File

@ -1,3 +1,15 @@
2004-01-09 Dmitry Semyonov <Dmitry.Semyonov@oktet.ru>
* coff-arm.c (aoutarm_std_reloc_howto): [ARM_WINCE] Synchronize ARM_26D
relocation howto with ARM_26 one for consistency.
(coff_arm_relocate_section): Set partial_inplace for ARM_26 relocations
that will be converted to ARM_26D ones, since we always want 'done'
relocations to be reflected in section's data.
(coff_arm_relocate_section): [ARM_WINCE] Quick fix for BL instruction
offset.
(_bfd_final_link_relocate): Do not modify "inplace" data, if not
requested.
2004-01-08 Dmitry Semyonov <Dmitry.Semyonov@oktet.ru>
* coff-arm.c (coff_arm_relocate_section): Do not alter relocs that

View File

@ -268,7 +268,7 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
2,
2,
24,
FALSE,
TRUE,
0,
complain_overflow_dont,
aoutarm_fix_pcrel_26_done,
@ -276,7 +276,7 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
FALSE,
0x00ffffff,
0x0,
FALSE),
PCRELOFFSET),
HOWTO (ARM_32,
0,
2,
@ -1250,7 +1250,8 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
when doing a relocatable link. However, we want to convert
ARM_26 to ARM_26D relocs if possible. We return a fake howto in
this case without pcrel_offset set, and adjust the addend to
compensate. */
compensate. 'partial_inplace' is also set, since we want 'done'
relocations to be reflected in section's data. */
if (rel->r_type == ARM_26
&& h != NULL
&& info->relocatable
@ -1269,12 +1270,17 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
complain_overflow_signed,
aoutarm_fix_pcrel_26 ,
"ARM_26",
FALSE,
TRUE,
0x00ffffff,
0x00ffffff,
FALSE);
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;
}