Commit 56a974fa authored by Sam Ravnborg's avatar Sam Ravnborg

kbuild: make better section mismatch reports on arm

With this change we can find more symbols hereby improving
the readability of the warnings.
Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
parent ae4ac123
......@@ -929,6 +929,26 @@ static int addend_386_rel(struct elf_info *elf, int rsection, Elf_Rela *r)
return 0;
}
static int addend_arm_rel(struct elf_info *elf, int rsection, Elf_Rela *r)
{
unsigned int r_typ = ELF_R_TYPE(r->r_info);
switch (r_typ) {
case R_ARM_ABS32:
/* From ARM ABI: (S + A) | T */
r->r_addend = (int)(long)(elf->symtab_start + ELF_R_SYM(r->r_info));
break;
case R_ARM_PC24:
/* From ARM ABI: ((S + A) | T) - P */
r->r_addend = (int)(long)(elf->hdr + elf->sechdrs[rsection].sh_offset +
(r->r_offset - elf->sechdrs[rsection].sh_addr));
break;
default:
return 1;
}
return 0;
}
static int addend_mips_rel(struct elf_info *elf, int rsection, Elf_Rela *r)
{
unsigned int r_typ = ELF_R_TYPE(r->r_info);
......@@ -1051,6 +1071,10 @@ static void check_sec_ref(struct module *mod, const char *modname,
if (addend_386_rel(elf, i, &r))
continue;
break;
case EM_ARM:
if(addend_arm_rel(elf, i, &r))
continue;
break;
case EM_MIPS:
if (addend_mips_rel(elf, i, &r))
continue;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment