From 2d16d28e5c20aacc9637f589558c118d6fe1a17c Mon Sep 17 00:00:00 2001 From: Doug Kwan Date: Tue, 8 May 2012 17:18:21 +0000 Subject: 2012-05-08 Ben Cheng * bfd/elf.c: Preserve the original p_align and p_flags if they are valid. --- bfd/elf.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'bfd/elf.c') diff --git a/bfd/elf.c b/bfd/elf.c index d040d14..9481c0e 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -4931,8 +4931,14 @@ assign_file_positions_for_non_load_sections (bfd *abfd, else abort (); p->p_memsz = p->p_filesz; - p->p_align = 1; - p->p_flags = (lp->p_flags & ~PF_W); + /* Preserve the alignment and flags if they are valid. The gold + linker generates RW/4 for the PT_GNU_RELRO section. It is better + for objcopy/strip to honor these attributes otherwise gdb will + choke when using separate debug files. */ + if (!m->p_align_valid) + p->p_align = 1; + if (!m->p_flags_valid) + p->p_flags = (lp->p_flags & ~PF_W); } else { -- cgit v1.1