[ELF] Delete redundant pageAlign at PT_GNU_RELRO boundaries after D58892

Summary:
After D58892 split the RW PT_LOAD on the PT_GNU_RELRO boundary, the new
layout is:

PT_LOAD(PT_GNU_RELRO(.data.rel.ro .bss.rel.ro)) PT_LOAD(.data. .bss)

The two pageAlign() calls at PT_GNU_RELRO boundaries are redundant due
to the existence of PT_LOAD.

Reviewers: grimar, peter.smith, ruiu, espindola

Reviewed By: ruiu

Subscribers: sfertile, atanasyan, emaste, arichardson, llvm-commits

Tags: #llvm

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

llvm-svn: 366307
This commit is contained in:
Fangrui Song 2019-07-17 09:23:04 +00:00
parent 9eb95903da
commit 2be0ebb0d8
1 changed files with 0 additions and 19 deletions

View File

@ -2223,25 +2223,6 @@ template <class ELFT> void Writer<ELFT>::fixSectionAlignments() {
for (const PhdrEntry *p : part.phdrs)
if (p->p_type == PT_LOAD && p->firstSec)
pageAlign(p->firstSec);
for (const PhdrEntry *p : part.phdrs) {
if (p->p_type != PT_GNU_RELRO)
continue;
if (p->firstSec)
pageAlign(p->firstSec);
// Find the first section after PT_GNU_RELRO. If it is in a PT_LOAD we
// have to align it to a page.
auto end = outputSections.end();
auto i = llvm::find(outputSections, p->lastSec);
if (i == end || (i + 1) == end)
continue;
OutputSection *cmd = (*(i + 1));
if (needsPtLoad(cmd))
pageAlign(cmd);
}
}
}