ARM: 7964/1: Detect section mismatches in thumb relocations
Add processing for normally encountered thumb relocation types so that section mismatches will be detected. Comment from Rusty Russell follows: Happiest for this to go through an ARM tree, so: Signed-off-by: David A. Long <dave.long@linaro.org> Acked-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
cd91b2fecf
commit
c9698e5cd6
1 changed files with 13 additions and 0 deletions
|
@ -1502,6 +1502,16 @@ static int addend_386_rel(struct elf_info *elf, Elf_Shdr *sechdr, Elf_Rela *r)
|
||||||
#define R_ARM_JUMP24 29
|
#define R_ARM_JUMP24 29
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef R_ARM_THM_CALL
|
||||||
|
#define R_ARM_THM_CALL 10
|
||||||
|
#endif
|
||||||
|
#ifndef R_ARM_THM_JUMP24
|
||||||
|
#define R_ARM_THM_JUMP24 30
|
||||||
|
#endif
|
||||||
|
#ifndef R_ARM_THM_JUMP19
|
||||||
|
#define R_ARM_THM_JUMP19 51
|
||||||
|
#endif
|
||||||
|
|
||||||
static int addend_arm_rel(struct elf_info *elf, Elf_Shdr *sechdr, Elf_Rela *r)
|
static int addend_arm_rel(struct elf_info *elf, Elf_Shdr *sechdr, Elf_Rela *r)
|
||||||
{
|
{
|
||||||
unsigned int r_typ = ELF_R_TYPE(r->r_info);
|
unsigned int r_typ = ELF_R_TYPE(r->r_info);
|
||||||
|
@ -1515,6 +1525,9 @@ static int addend_arm_rel(struct elf_info *elf, Elf_Shdr *sechdr, Elf_Rela *r)
|
||||||
case R_ARM_PC24:
|
case R_ARM_PC24:
|
||||||
case R_ARM_CALL:
|
case R_ARM_CALL:
|
||||||
case R_ARM_JUMP24:
|
case R_ARM_JUMP24:
|
||||||
|
case R_ARM_THM_CALL:
|
||||||
|
case R_ARM_THM_JUMP24:
|
||||||
|
case R_ARM_THM_JUMP19:
|
||||||
/* From ARM ABI: ((S + A) | T) - P */
|
/* From ARM ABI: ((S + A) | T) - P */
|
||||||
r->r_addend = (int)(long)(elf->hdr +
|
r->r_addend = (int)(long)(elf->hdr +
|
||||||
sechdr->sh_offset +
|
sechdr->sh_offset +
|
||||||
|
|
Loading…
Add table
Reference in a new issue