modpost: drop executable ELF support
Since commit 269a535ca9
("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>
This commit is contained in:
Родитель
1fd49a0b5c
Коммит
5764f6626f
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче