Commit 7b957b6e authored by Ard Biesheuvel's avatar Ard Biesheuvel Committed by Catalin Marinas

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: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent 4a2e034e
...@@ -266,9 +266,9 @@ do_file(char const *const fname) ...@@ -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) ...@@ -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) ...@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment