Skip to content

Commit 2cb7494

Browse files
committed
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 <[email protected]>
1 parent 3310bae commit 2cb7494

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

scripts/mod/modpost.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1281,6 +1281,7 @@ static int addend_arm_rel(struct elf_info *elf, Elf_Shdr *sechdr, Elf_Rela *r)
12811281

12821282
switch (r_typ) {
12831283
case R_ARM_ABS32:
1284+
case R_ARM_REL32:
12841285
inst = TO_NATIVE(*(uint32_t *)loc);
12851286
r->r_addend = inst + sym->st_value;
12861287
break;

0 commit comments

Comments
 (0)