]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit - bfd/elf.c
PR22758, FAIL: Run pr22393-2
authorAlan Modra <amodra@gmail.com>
Tue, 30 Jan 2018 05:32:32 +0000 (16:02 +1030)
committerAlan Modra <amodra@gmail.com>
Tue, 30 Jan 2018 08:28:51 +0000 (18:58 +1030)
commit76cb3a89a6615cf3418fa1efe8268bf6673a5c8a
tree2ba00e73904ed096f9c240e173bcfeda0f7970d0
parentfc413dc467e4c46013f6e5a60dc5db24d63f72ea
PR22758, FAIL: Run pr22393-2

We can't map different disk pages into the same memory page; The last
page mapped will simply overwrite any previous pages.  The
executable/non-executable new_segment test ignored this fact, leading
to a ld.so segfault on hppa when .dynamic is overwritten with zeros.

This patch moves existing tests for demand paging with lma on the same
memory page, to a new test performed before any case where we want a
new segment due to protection or loadable conflicts.

PR 22758
* elf.c (_bfd_elf_map_sections_to_segments): Don't start a new
segment when demand paged with lma on the same page.  Test this
before load/non-load, executable/non-executable,
writable/non-writable tests and simplify.  Delete bogus relro
condition in writable/non-writable test.  Delete outdated
comment.  Formatting.
bfd/ChangeLog
bfd/elf.c