scripts/sortextable: add support for ET_DYN binaries
Add support to scripts/sortextable for handling relocatable (PIE) executables, whose ELF type is ET_DYN, not ET_EXEC. Other than adding support for the new type, no changes are needed. Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> (cherry picked from commit 7b957b6e603623ef8b2e8222fa94b976df613fa2) Signed-off-by: Alex Shi <alex.shi@linaro.org>
This commit is contained in:
parent
6ef77fd596
commit
afc69bdc2a
1 changed files with 4 additions and 4 deletions
|
@ -266,9 +266,9 @@ do_file(char const *const fname)
|
||||||
break;
|
break;
|
||||||
} /* end switch */
|
} /* end switch */
|
||||||
if (memcmp(ELFMAG, ehdr->e_ident, SELFMAG) != 0
|
if (memcmp(ELFMAG, ehdr->e_ident, SELFMAG) != 0
|
||||||
|| r2(&ehdr->e_type) != ET_EXEC
|
|| (r2(&ehdr->e_type) != ET_EXEC && r2(&ehdr->e_type) != ET_DYN)
|
||||||
|| ehdr->e_ident[EI_VERSION] != EV_CURRENT) {
|
|| ehdr->e_ident[EI_VERSION] != EV_CURRENT) {
|
||||||
fprintf(stderr, "unrecognized ET_EXEC file %s\n", fname);
|
fprintf(stderr, "unrecognized ET_EXEC/ET_DYN file %s\n", fname);
|
||||||
fail_file();
|
fail_file();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -304,7 +304,7 @@ do_file(char const *const fname)
|
||||||
if (r2(&ehdr->e_ehsize) != sizeof(Elf32_Ehdr)
|
if (r2(&ehdr->e_ehsize) != sizeof(Elf32_Ehdr)
|
||||||
|| r2(&ehdr->e_shentsize) != sizeof(Elf32_Shdr)) {
|
|| r2(&ehdr->e_shentsize) != sizeof(Elf32_Shdr)) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"unrecognized ET_EXEC file: %s\n", fname);
|
"unrecognized ET_EXEC/ET_DYN file: %s\n", fname);
|
||||||
fail_file();
|
fail_file();
|
||||||
}
|
}
|
||||||
do32(ehdr, fname, custom_sort);
|
do32(ehdr, fname, custom_sort);
|
||||||
|
@ -314,7 +314,7 @@ do_file(char const *const fname)
|
||||||
if (r2(&ghdr->e_ehsize) != sizeof(Elf64_Ehdr)
|
if (r2(&ghdr->e_ehsize) != sizeof(Elf64_Ehdr)
|
||||||
|| r2(&ghdr->e_shentsize) != sizeof(Elf64_Shdr)) {
|
|| r2(&ghdr->e_shentsize) != sizeof(Elf64_Shdr)) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"unrecognized ET_EXEC file: %s\n", fname);
|
"unrecognized ET_EXEC/ET_DYN file: %s\n", fname);
|
||||||
fail_file();
|
fail_file();
|
||||||
}
|
}
|
||||||
do64(ghdr, fname, custom_sort);
|
do64(ghdr, fname, custom_sort);
|
||||||
|
|
Loading…
Add table
Reference in a new issue