[PATCH] modpost: error out if addend_*_rel() is not implemented for REL arch

Masahiro Yamada
2023-05-11T16:25:25Z

The section mismatch check relies on the relocation entries.

For REL, the addend value is implicit, so we need some code to compute
it. Currently, EM_386, EM_ARM, and EM_MIPS are supported. This commit
makes sure we covered all the cases.

I believe the other architectures use RELA, where the explicit r_addend
field exists.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---

scripts/mod/modpost.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 95da374cc534..44309d463a49 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -1442,6 +1442,8 @@ static void section_rel(const char *modname, struct elf_info *elf,
if (addend_mips_rel(elf, sechdr, &r))
continue;
break;
+ default:
+ fatal("Please add code to calculate addend for this architecture\n");
}
sym = elf->symtab_start + r_sym;
/* Skip special sections */
--
2.39.2