diff options
author | David Gow <davidgow@google.com> | 2020-03-05 21:39:39 +0300 |
---|---|---|
committer | Richard Weinberger <richard@nod.at> | 2020-03-30 00:21:29 +0300 |
commit | 598f5630361397c542a0ba2bec0ac5c0e1723d5c (patch) | |
tree | 3ded48a12c36cb047ff59d8f21ea27e6532aca53 /arch/Kconfig | |
parent | 73343392aae8bdd939ca58e855889d1b015b0ef4 (diff) | |
download | linux-598f5630361397c542a0ba2bec0ac5c0e1723d5c.tar.xz |
um: Fix overlapping ELF segments when statically linked
When statically linked, the .text section in UML kernels is not page
aligned, causing it to share a page with the executable headers. As
.text and the executable headers have different permissions, this causes
the kernel to wish to map the same page twice (once as headers with r--
permissions, once as .text with r-x permissions), causing a segfault,
and a nasty message printed to the host kernel's dmesg:
"Uhuuh, elf segment at 0000000060000000 requested but the memory is
mapped already"
By aligning the .text to a page boundary (as in the dynamically linked
version in dyn.lds.S), there is no such overlap, and the kernel runs
correctly.
Signed-off-by: David Gow <davidgow@google.com>
Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
Diffstat (limited to 'arch/Kconfig')
0 files changed, 0 insertions, 0 deletions