https://sourceware.org/bugzilla/show_bug.cgi?id=22829
Bug ID: 22829 Summary: objcopy/strip: PT_GNU_RELRO is removed when it's not at the beginning of a PT_LOAD area Product: binutils Version: 2.31 (HEAD) Status: UNCONFIRMED Severity: critical Priority: P2 Component: binutils Assignee: unassigned at sourceware dot org Reporter: ngg at tresorit dot com Target Milestone: --- The assign_file_positions_for_non_load_sections() function in bfd/elf.c removes a PT_GNU_RELRO segment if there is no corresponding PT_LOAD segment. This check is made by comparing the two segments' p_paddr fields for equality. The lld linker can assign a single PT_LOAD for multiple sections even if only some of those will be marked as relro. In this case the p_paddr fields do not match and strip/objcopy wrongfully removes the PT_GNU_RELRO segment. Unfortunately it's not that easy to fix because if the equality check is fixed to recognize an overlapping PT_LOAD segment then that segment's parameters (vaddr, paddr, offset, ...) override the PT_GNU_RELRO segment's parameters which is not what we would want. -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils