HomePhabricator

[ELF] nmagic or omagic: don't allocate PT_PHDR or PF_R PT_LOAD for the !

Authored by MaskRay on Sep 9 2019, 6:08 AM.

Description

[ELF] nmagic or omagic: don't allocate PT_PHDR or PF_R PT_LOAD for the !hasPhdrsCommands case

part.phdrs = script->hasPhdrsCommands() ? script->createPhdrs() : createPhdrs(part);

createPhdrs() allocates a PT_PHDR and a PF_R PT_LOAD, which will be
deleted later in LinkerScript::allocateHeaders, but leave a gap between
the program headers and the first section. Don't allocate the segments
to avoid the gap. PT_INTERP is likely not needed as well.

Reviewed By: ruiu

Differential Revision: https://reviews.llvm.org/D67324

llvm-svn: 371398