diff mbox series

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

Message ID 20230511162423.1922133-1-masahiroy@kernel.org (mailing list archive)
State New, archived
Headers show
Series modpost: error out if addend_*_rel() is not implemented for REL arch | expand

Commit Message

Masahiro Yamada May 11, 2023, 4:24 p.m. UTC
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(+)

Comments

Masahiro Yamada May 21, 2023, 1:11 p.m. UTC | #1
On Fri, May 12, 2023 at 1:25 AM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> 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>
> ---

Applied to linux-kbuild.



>
>  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
>
diff mbox series

Patch

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 */