• David Gow's avatar
    um: Fix overlapping ELF segments when statically linked · 598f5630
    David Gow authored
    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: default avatarDavid Gow <davidgow@google.com>
    Reviewed-by: default avatarBrendan Higgins <brendanhiggins@google.com>
    Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
    598f5630
uml.lds.S 2.46 KB