Commit 24889e6a authored by simonmar's avatar simonmar
Browse files

[project @ 2002-10-25 12:56:34 by simonmar]

We shouldn't be using MAP_FIXED on solaris (fixes last night's crash).

Unfortunately on Solaris the heuristics don't work too well.  Solaris
seems to ignore the addr argument to mmap when MAP_FIXED is not
specified, and starts handing out memory from the top of the address
space.  So we allocate 2M each time and munmap() ends to leave an
aligned 1M chunk.  This will eventually leave the address space
completely full of 1M holes.  I don't have a good solution to this at
the moment.

MERGE TO STABLE
parent 1029a5b1
/* -----------------------------------------------------------------------------
* $Id: MBlock.c,v 1.32 2002/10/23 12:26:11 mthomas Exp $
* $Id: MBlock.c,v 1.33 2002/10/25 12:56:34 simonmar Exp $
*
* (c) The GHC Team 1998-1999
*
......@@ -95,8 +95,7 @@ my_mmap (void *addr, int size)
#ifdef solaris2_TARGET_OS
{
int fd = open("/dev/zero",O_RDONLY);
ret = mmap(addr, size, PROT_READ | PROT_WRITE,
MAP_FIXED | MAP_PRIVATE, fd, 0);
ret = mmap(addr, size, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
close(fd);
}
#elif hpux_TARGET_OS
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment