(heap_alloc_uncollectable): Added additional parameter for heap_alloc.
(gc_init) [HAVE_MMAP]: Added #ifdef.
#include "config.h"
#include <stdlib.h>
#include "config.h"
#include <stdlib.h>
+
+#if defined(HAVE_SYS_MMAN_H)
+# include <sys/mman.h>
+#endif
void *heap_alloc_uncollectable(u4 size)
{
void *heap_alloc_uncollectable(u4 size)
{
- return heap_alloc(size, false, NULL);
+ return heap_alloc(size, false, NULL, false);
{
heapmaxsize = MEMORY_ALIGN(heapmaxsize, ALIGNSIZE);
{
heapmaxsize = MEMORY_ALIGN(heapmaxsize, ALIGNSIZE);
mmapptr = mmap((void *) MMAP_HEAPADDRESS,
(size_t) heapmaxsize,
PROT_READ | PROT_WRITE,
mmapptr = mmap((void *) MMAP_HEAPADDRESS,
(size_t) heapmaxsize,
PROT_READ | PROT_WRITE,
if (mmapptr == MAP_FAILED)
vm_abort("gc_init: out of memory");
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);
mmapsize = heapmaxsize;
mmaptop = (void *) ((ptrint) mmapptr + mmapsize);