mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-24 10:35:12 +08:00
Fixes for use of ARM_26D reloc in arm-wince toolchain.
This commit is contained in:
parent
362ff85603
commit
d3793eaa60
@ -1,3 +1,12 @@
|
||||
2003-12-05 Dmitry Semyonov <Dmitry.Semyonov@oktet.ru>
|
||||
|
||||
* coff-arm.c (aoutarm_std_reloc_howto [ARM_WINCE]): Set
|
||||
partial_inplace for these relocs to FALSE for comptability with
|
||||
the MS linker.
|
||||
Remap ARM_26D relocation from 5 to 0. This fixes "bad fixup" error
|
||||
generated by MS linker, and brings the relocation in line the MS
|
||||
PE documentation.
|
||||
|
||||
2003-12-04 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* elf32-ppc.c (ppc_elf_relax_section): Don't check relax_finalizing.
|
||||
|
@ -252,11 +252,11 @@ coff_arm_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
|
||||
#undef ARM_THUMB12
|
||||
#undef ARM_26D
|
||||
|
||||
#define ARM_26D 0
|
||||
#define ARM_32 1
|
||||
#define ARM_RVA32 2
|
||||
#define ARM_26 3
|
||||
#define ARM_THUMB12 4
|
||||
#define ARM_26D 5
|
||||
#define ARM_SECTION 14
|
||||
#define ARM_SECREL 15
|
||||
#endif
|
||||
@ -264,7 +264,19 @@ coff_arm_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
|
||||
static reloc_howto_type aoutarm_std_reloc_howto[] =
|
||||
{
|
||||
#ifdef ARM_WINCE
|
||||
EMPTY_HOWTO (-1),
|
||||
HOWTO (ARM_26D,
|
||||
2,
|
||||
2,
|
||||
24,
|
||||
FALSE,
|
||||
0,
|
||||
complain_overflow_dont,
|
||||
aoutarm_fix_pcrel_26_done,
|
||||
"ARM_26D",
|
||||
FALSE,
|
||||
0x00ffffff,
|
||||
0x0,
|
||||
FALSE),
|
||||
HOWTO (ARM_32,
|
||||
0,
|
||||
2,
|
||||
@ -274,7 +286,7 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
|
||||
complain_overflow_bitfield,
|
||||
coff_arm_reloc,
|
||||
"ARM_32",
|
||||
TRUE,
|
||||
FALSE,
|
||||
0xffffffff,
|
||||
0xffffffff,
|
||||
PCRELOFFSET),
|
||||
@ -287,7 +299,7 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
|
||||
complain_overflow_bitfield,
|
||||
coff_arm_reloc,
|
||||
"ARM_RVA32",
|
||||
TRUE,
|
||||
FALSE,
|
||||
0xffffffff,
|
||||
0xffffffff,
|
||||
PCRELOFFSET),
|
||||
@ -317,19 +329,7 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
|
||||
0x000007ff,
|
||||
0x000007ff,
|
||||
PCRELOFFSET),
|
||||
HOWTO (ARM_26D,
|
||||
2,
|
||||
2,
|
||||
24,
|
||||
FALSE,
|
||||
0,
|
||||
complain_overflow_dont,
|
||||
aoutarm_fix_pcrel_26_done,
|
||||
"ARM_26D",
|
||||
TRUE,
|
||||
0x00ffffff,
|
||||
0x0,
|
||||
FALSE),
|
||||
EMPTY_HOWTO (-1),
|
||||
EMPTY_HOWTO (-1),
|
||||
EMPTY_HOWTO (-1),
|
||||
EMPTY_HOWTO (-1),
|
||||
@ -346,8 +346,8 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
|
||||
0,
|
||||
complain_overflow_bitfield,
|
||||
coff_arm_reloc,
|
||||
"ARM_16",
|
||||
TRUE,
|
||||
"ARM_SECTION",
|
||||
FALSE,
|
||||
0x0000ffff,
|
||||
0x0000ffff,
|
||||
PCRELOFFSET),
|
||||
@ -359,8 +359,8 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
|
||||
0,
|
||||
complain_overflow_bitfield,
|
||||
coff_arm_reloc,
|
||||
"ARM_32",
|
||||
TRUE,
|
||||
"ARM_SECREL",
|
||||
FALSE,
|
||||
0xffffffff,
|
||||
0xffffffff,
|
||||
PCRELOFFSET),
|
||||
|
@ -1,3 +1,8 @@
|
||||
2003-12-05 Dmitry Semyonov <Dmitry.Semyonov@oktet.ru>
|
||||
|
||||
* pe-dll.c (generate_reloc): Remap ARM_26D relocation from 5 to
|
||||
0. This fixes "bad fixup" error generated by MS linker.
|
||||
|
||||
2003-12-04 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* emultempl/ia64elf.em (gld${EMULATION_NAME}_after_parse): Set
|
||||
|
@ -1155,7 +1155,12 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info)
|
||||
total_relocs++;
|
||||
break;
|
||||
case BITS_AND_SHIFT (24, 2):
|
||||
if (relocs[i]->howto->type == 5)
|
||||
/* FIXME: 0 is ARM_26D, it is defined in bfd/coff-arm.c
|
||||
Those ARM_xxx definitions should go in proper
|
||||
header someday. */
|
||||
if (relocs[i]->howto->type == 0
|
||||
/* Older GNU linkers used 5 instead of 0 for this reloc. */
|
||||
|| relocs[i]->howto->type == 5)
|
||||
/* This is an ARM_26D reloc, which is an ARM_26 reloc
|
||||
that has already been fully processed during a
|
||||
previous link stage, so ignore it here. */
|
||||
|
Loading…
Reference in New Issue
Block a user