[PATCH] D64906: [ELF][PPC] Allow overlapping PT_LOAD (keep p_offset ranges adjacent) to decrease file size
Fangrui Song via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 18 20:30:00 PDT 2019
MaskRay marked an inline comment as done.
MaskRay added inline comments.
================
Comment at: ELF/Writer.cpp:2390
// rounds up.
- p->p_memsz = alignTo(p->p_memsz, config->commonPageSize);
+ p->p_memsz = alignTo(p->p_offset + p->p_memsz, config->commonPageSize) -
+ p->p_offset;
----------------
@pcc I think after D29242, we may lose PROT_READ protection of the last page of PT_GNU_RELRO. (This patch should keep the behavior unchanged.)
glibc/musl essentially do:
```
start = p_vaddr & -pagesize
mprotect(start, (p_vaddr+p_memsz & -pagesize) - start, PROT_READ)
```
The last page is unprotected if maxPageSize > pagesize >= commonPageSize.
I guess that may be why ld.bfd aligns the end of PT_GNU_RELRO, instead of its start.
Repository:
rLLD LLVM Linker
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D64906/new/
https://reviews.llvm.org/D64906
More information about the llvm-commits
mailing list