modpost: detect section mismatch for R_ARM_REL32
For ARM, modpost fails to detect some types of section mismatches. [test code] .section .init.data,"aw" bar: .long 0 .section .data,"aw" .globl foo foo: .long bar - . It is apparently a bad reference, but modpost does not report anything. The test code above produces the following relocations. Relocation section '.rel.data' at offset 0xe8 contains 1 entry: Offset Info Type Sym.Value Sym. Name 00000000 00000403 R_ARM_REL32 00000000 .init.data Currently, R_ARM_REL32 is just skipped. Handle it like R_ARM_ABS32. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
This commit is contained in:
parent
3310bae805
commit
2cb749466d
@ -1281,6 +1281,7 @@ static int addend_arm_rel(struct elf_info *elf, Elf_Shdr *sechdr, Elf_Rela *r)
|
||||
|
||||
switch (r_typ) {
|
||||
case R_ARM_ABS32:
|
||||
case R_ARM_REL32:
|
||||
inst = TO_NATIVE(*(uint32_t *)loc);
|
||||
r->r_addend = inst + sym->st_value;
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user