Do not adjust PT_GNU_STACK segment
Bug: http://b/20687795 Bug: http://b/18051137 Change-Id: Ie8af3892cfbebcc0249e7981284c4ad97ff40317 (cherry picked from commit 064a9800f372b8efd6d7b08150ab5204e5304c84)
This commit is contained in:
parent
64a8698809
commit
4637f3d66d
@ -312,6 +312,13 @@ static void AdjustProgramHeaderOffsets(typename ELF::Phdr* program_headers,
|
||||
for (size_t i = 0; i < count; ++i) {
|
||||
typename ELF::Phdr* program_header = &program_headers[i];
|
||||
|
||||
// Do not adjust PT_GNU_STACK - it confuses gdb and results
|
||||
// in incorrect unwinding if the executable is stripped after
|
||||
// packing.
|
||||
if (program_header->p_type == PT_GNU_STACK) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (program_header->p_offset > hole_start) {
|
||||
// The hole start is past this segment, so adjust offset.
|
||||
program_header->p_offset += hole_size;
|
||||
|
Loading…
x
Reference in New Issue
Block a user