Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -266,9 +266,9 @@ do_file(char const *const fname)
		break;
	}  /* end switch */
	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) {
		fprintf(stderr, "unrecognized ET_EXEC file %s\n", fname);
		fprintf(stderr, "unrecognized ET_EXEC/ET_DYN file %s\n", fname);
		fail_file();
	}

@@ -304,7 +304,7 @@ do_file(char const *const fname)
		if (r2(&ehdr->e_ehsize) != sizeof(Elf32_Ehdr)
		||  r2(&ehdr->e_shentsize) != sizeof(Elf32_Shdr)) {
			fprintf(stderr,
				"unrecognized ET_EXEC file: %s\n", fname);
				"unrecognized ET_EXEC/ET_DYN file: %s\n", fname);
			fail_file();
		}
		do32(ehdr, fname, custom_sort);
@@ -314,7 +314,7 @@ do_file(char const *const fname)
		if (r2(&ghdr->e_ehsize) != sizeof(Elf64_Ehdr)
		||  r2(&ghdr->e_shentsize) != sizeof(Elf64_Shdr)) {
			fprintf(stderr,
				"unrecognized ET_EXEC file: %s\n", fname);
				"unrecognized ET_EXEC/ET_DYN file: %s\n", fname);
			fail_file();
		}
		do64(ghdr, fname, custom_sort);