#include "config.h"
#include <stdlib.h>
-#include <sys/mman.h>
+
+#if defined(HAVE_SYS_MMAN_H)
+# include <sys/mman.h>
+#endif
#include "vm/types.h"
void *heap_alloc_uncollectable(u4 size)
{
- return heap_alloc(size, false, NULL);
+ return heap_alloc(size, false, NULL, false);
}
{
heapmaxsize = MEMORY_ALIGN(heapmaxsize, ALIGNSIZE);
+#if defined(HAVE_MMAP)
mmapptr = mmap((void *) MMAP_HEAPADDRESS,
(size_t) heapmaxsize,
PROT_READ | PROT_WRITE,
if (mmapptr == MAP_FAILED)
vm_abort("gc_init: out of memory");
+#else
+ mmapptr = malloc(heapmaxsize);
+
+ if (mmapptr == NULL)
+ vm_abort("gc_init: out of memory");
+#endif
mmapsize = heapmaxsize;
mmaptop = (void *) ((ptrint) mmapptr + mmapsize);