diff options
author | Nick Clifton <nickc@redhat.com> | 2006-05-11 08:48:58 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2006-05-11 08:48:58 +0000 |
commit | 53baae4870e8c05901fc63c7ee999492f10c2b87 (patch) | |
tree | 83570d6ac757909f7197a1676a5e6f12ee79c51c /bfd | |
parent | ad623ec6b4fd99d72ccd621cfe455d1f6f58d28d (diff) | |
download | gdb-53baae4870e8c05901fc63c7ee999492f10c2b87.zip gdb-53baae4870e8c05901fc63c7ee999492f10c2b87.tar.gz gdb-53baae4870e8c05901fc63c7ee999492f10c2b87.tar.bz2 |
Apply fixes to allow arm WinCE toolchain to produce working executables.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/coff-arm.c | 14 |
2 files changed, 15 insertions, 6 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index e757fc5..414e706 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2006-05-11 Pedro Alves <pedro_alves@portugalmail.pt> + + * coff-arm.c (ARM_26D, ARM_32, ARM_RVA_32, ARM_SECTION, + ARM_SECREL): Mark WinCE versions of these relocs as partial + inplace. + (coff_arm_relocate_section): Adjust addend for WinCE. + 2006-05-10 Alan Modra <amodra@bigpond.net.au> PR 2342 diff --git a/bfd/coff-arm.c b/bfd/coff-arm.c index 6b83dc7..c5b4765 100644 --- a/bfd/coff-arm.c +++ b/bfd/coff-arm.c @@ -220,7 +220,7 @@ static reloc_howto_type aoutarm_std_reloc_howto[] = complain_overflow_dont, aoutarm_fix_pcrel_26_done, "ARM_26D", - FALSE, + TRUE, /* partial_inplace. */ 0x00ffffff, 0x0, PCRELOFFSET), @@ -233,7 +233,7 @@ static reloc_howto_type aoutarm_std_reloc_howto[] = complain_overflow_bitfield, coff_arm_reloc, "ARM_32", - FALSE, + TRUE, /* partial_inplace. */ 0xffffffff, 0xffffffff, PCRELOFFSET), @@ -246,7 +246,7 @@ static reloc_howto_type aoutarm_std_reloc_howto[] = complain_overflow_bitfield, coff_arm_reloc, "ARM_RVA32", - FALSE, + TRUE, /* partial_inplace. */ 0xffffffff, 0xffffffff, PCRELOFFSET), @@ -294,7 +294,7 @@ static reloc_howto_type aoutarm_std_reloc_howto[] = complain_overflow_bitfield, coff_arm_reloc, "ARM_SECTION", - FALSE, + TRUE, /* partial_inplace. */ 0x0000ffff, 0x0000ffff, PCRELOFFSET), @@ -307,7 +307,7 @@ static reloc_howto_type aoutarm_std_reloc_howto[] = complain_overflow_bitfield, coff_arm_reloc, "ARM_SECREL", - FALSE, + TRUE, /* partial_inplace. */ 0xffffffff, 0xffffffff, PCRELOFFSET), @@ -1209,12 +1209,14 @@ coff_arm_relocate_section (bfd *output_bfd, generation of bl's instruction offset. */ addend -= 8; #endif - howto = &fake_arm26_reloc; + howto = & fake_arm26_reloc; } #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 (howto->pc_relative && !info->relocatable) + addend -= 8; #endif /* If we are doing a relocatable link, then we can just ignore |