diff options
-rw-r--r-- | exec/exec.c | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/exec/exec.c b/exec/exec.c index 617dc8e8..d72ad886 100644 --- a/exec/exec.c +++ b/exec/exec.c @@ -81,26 +81,13 @@ load_section (void *section, struct execdata *u) addr += u->info.elf.loadbase; else { -#if 0 - /* XXX: gnumach currently does not support high bits set in mask to prevent - * loading at high addresses. - * Instead, in rtld we prevent mappings there through a huge mapping done by - * fmh(). - */ - switch (elf_machine) - { - case EM_386: - case EM_486: - /* On the i386, programs normally load at 0x08000000, and - expect their data segment to be able to grow dynamically - upward from its start near that address. We need to make - sure that the dynamic linker is not mapped in a conflicting - address. */ - /* mask = 0xf8000000UL; */ /* XXX */ - break; - default: - break; - } +#ifdef __i386__ + /* On the i386, programs normally load at 0x08000000, and + expect their data segment to be able to grow dynamically + upward from its start near that address. We need to make + sure that the dynamic linker is not mapped in a conflicting + address. */ + mask = 0xf0000000UL; /* XXX */ #endif } if (anywhere && addr < vm_page_size) |