diff options
author | Masahiro Yamada <masahiroy@kernel.org> | 2022-07-19 19:52:59 +0300 |
---|---|---|
committer | Masahiro Yamada <masahiroy@kernel.org> | 2022-07-27 15:18:00 +0300 |
commit | 5764f6626f5f334b27e168a33735b3899d08bcd2 (patch) | |
tree | 441ee0977abf26329279c4d271bbd1616e0b4802 | |
parent | 1fd49a0b5c4330ceefef4de498cec271e240aaf1 (diff) | |
download | linux-5764f6626f5f334b27e168a33735b3899d08bcd2.tar.xz |
modpost: drop executable ELF support
Since commit 269a535ca931 ("modpost: generate vmlinux.symvers and
reuse it for the second modpost"), modpost only parses relocatable
files (ET_REL).
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
-rw-r--r-- | scripts/mod/modpost.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index e15227ee58fc..75aa10413ad4 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -321,9 +321,6 @@ static void *sym_get_data_by_offset(const struct elf_info *info, { Elf_Shdr *sechdr = &info->sechdrs[secindex]; - if (info->hdr->e_type != ET_REL) - offset -= sechdr->sh_addr; - return (void *)info->hdr + sechdr->sh_offset + offset; } @@ -466,6 +463,10 @@ static int parse_elf(struct elf_info *info, const char *filename) sechdrs = (void *)hdr + hdr->e_shoff; info->sechdrs = sechdrs; + /* modpost only works for relocatable objects */ + if (hdr->e_type != ET_REL) + fatal("%s: not relocatable object.", filename); + /* Check if file offset is correct */ if (hdr->e_shoff > info->size) { fatal("section header offset=%lu in file '%s' is bigger than filesize=%zu\n", @@ -1622,9 +1623,6 @@ static int addend_386_rel(struct elf_info *elf, Elf_Shdr *sechdr, Elf_Rela *r) break; case R_386_PC32: r->r_addend = TO_NATIVE(*location) + 4; - /* For CONFIG_RELOCATABLE=y */ - if (elf->hdr->e_type == ET_EXEC) - r->r_addend += r->r_offset; break; } return 0; |