elf2efi: add parameter to increase reserved space for headers

When building a minimal empty addon it would not have enough
space to append sections. Add an option that will later be
used to reserve enough space.
This commit is contained in:
Luca Boccassi 2023-05-23 01:43:59 +01:00
parent b6f2e68602
commit e18e3c4305

View file

@ -512,10 +512,11 @@ def elf2efi(args: argparse.Namespace):
opt.SizeOfImage = align_to(
sections[-1].VirtualAddress + sections[-1].VirtualSize, SECTION_ALIGNMENT
)
opt.SizeOfHeaders = align_to(
PE_OFFSET
+ coff.SizeOfOptionalHeader
+ sizeof(PeSection) * coff.NumberOfSections,
+ sizeof(PeSection) * max(coff.NumberOfSections, args.minimum_sections),
FILE_ALIGNMENT,
)
# DYNAMIC_BASE|NX_COMPAT|HIGH_ENTROPY_VA or DYNAMIC_BASE|NX_COMPAT
@ -578,6 +579,12 @@ def main():
type=argparse.FileType("wb"),
help="Output PE/EFI file",
)
parser.add_argument(
"--minimum-sections",
type=int,
default=0,
help="Minimum number of sections to leave space for",
)
elf2efi(parser.parse_args())