This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
[arm] Don't "adjust" EABI relocations
- From: Paul Brook <paul at codesourcery dot com>
- To: binutils at sources dot redhat dot com
- Cc: Richard Earnshaw <rearnsha at arm dot com>
- Date: Tue, 30 Nov 2004 15:52:39 +0000
- Subject: [arm] Don't "adjust" EABI relocations
- Organization: CodeSourcery
The patch below prevents the linker applying the 8-byte pc offset adjustment
to relocations in new eabi objects. These can have an EI_OSABI of zero.
It's unclear which "old" toolchains get this wrong. Is this the now-dead
arm-elf-oabi configuration? If so I'll just rip the whole thing out.
Tested cross to arm-none-{elf,eabi} and built --enable-targets=all.
Ok?
Paul
2004-11-30 Paul Brook <paul@codesourcery.com>
* elf32-arm.c (elf32_arm_final_link_relocate): Don't adjust
relocations in new EABI objects.
Index: elf32-arm.c
===================================================================
RCS file: /cvs/src/src/bfd/elf32-arm.c,v
retrieving revision 1.11
diff -u -p -r1.11 elf32-arm.c
--- elf32-arm.c 24 Nov 2004 14:44:42 -0000 1.11
+++ elf32-arm.c 30 Nov 2004 15:32:50 -0000
@@ -2545,7 +2545,9 @@ elf32_arm_final_link_relocate (reloc_how
i_ehdrp = elf_elfheader (input_bfd);
- if (i_ehdrp->e_ident[EI_OSABI] == 0)
+ if (i_ehdrp->e_ident[EI_OSABI] == 0
+ && EF_ARM_EABI_VERSION (i_ehdrp->e_flags)
+ == EF_ARM_EABI_UNKNOWN)
value -= 8;
}
}