diff --git a/src/sysmem.c b/src/sysmem.c index ecc999aab8..4fc4d47a74 100644 --- a/src/sysmem.c +++ b/src/sysmem.c @@ -280,6 +280,12 @@ int SyTryToIncreasePool(void) #define MAP_ANONYMOUS MAP_ANON #endif +#ifdef SYS_IS_CYGWIN32 +#define GAP_MMAP_FLAGS MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE +#else +#define GAP_MMAP_FLAGS MAP_PRIVATE|MAP_ANONYMOUS +#endif + static void *SyMMapStart = NULL; /* Start of mmap'ed region for POOL */ static void *SyMMapEnd; /* End of mmap'ed region for POOL */ static void *SyMMapAdvised; /* We have already advised about non-usage @@ -341,15 +347,15 @@ static void * SyAnonMMap(size_t size) size = SyRoundUpToPagesize(size); #ifdef SYS_IS_64_BIT /* The following is at 16 Terabyte: */ - result = mmap((void *) (16L*1024*1024*1024*1024), size, - PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); + result = mmap((void *) (16L*1024*1024*1024*1024), size, + PROT_READ|PROT_WRITE, GAP_MMAP_FLAGS, -1, 0); if (result == MAP_FAILED) { result = mmap(NULL, size, PROT_READ|PROT_WRITE, - MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); + GAP_MMAP_FLAGS, -1, 0); } #else result = mmap(NULL, size, PROT_READ|PROT_WRITE, - MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); + GAP_MMAP_FLAGS, -1, 0); #endif if (result == MAP_FAILED) result = NULL; @@ -370,7 +376,7 @@ static int SyTryToIncreasePool(void) size = (Int) SyMMapEnd - (Int) SyMMapStart; newchunk = SyRoundUpToPagesize(size/2); result = mmap(SyMMapEnd, newchunk, PROT_READ|PROT_WRITE, - MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); + GAP_MMAP_FLAGS, -1, 0); if (result == MAP_FAILED) return -1; if (result != SyMMapEnd) { munmap(result,newchunk); diff --git a/src/system.c b/src/system.c index 0475aafdf0..bb01481248 100644 --- a/src/system.c +++ b/src/system.c @@ -1072,11 +1072,7 @@ void InitSystem ( #else SyStorMin = 64 * 1024L; SyStorMax = 1024*1024L; /* This is in kB! */ -#ifdef SYS_IS_CYGWIN32 - SyAllocPool = 0; /* works better on cygwin */ -#else SyAllocPool = 1536L*1024*1024; /* Note this is in bytes! */ -#endif #endif SyStorOverrun = 0; SyStorKill = 0;