|
@@ -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 +
|