From: Mike Pall Date: Mon, 23 May 2016 12:28:28 +0000 (+0200) Subject: Use MAP_TRYFIXED for the probing memory allocator, if available. X-Git-Tag: v2.1.0-beta3~111 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F184%2Fhead;p=thirdparty%2FLuaJIT.git Use MAP_TRYFIXED for the probing memory allocator, if available. --- diff --git a/src/lj_alloc.c b/src/lj_alloc.c index 5d0834ec..95d15d04 100644 --- a/src/lj_alloc.c +++ b/src/lj_alloc.c @@ -215,6 +215,12 @@ static int CALL_MUNMAP(void *ptr, size_t size) #if LJ_ALLOC_MMAP_PROBE +#ifdef MAP_TRYFIXED +#define MMAP_FLAGS_PROBE (MMAP_FLAGS|MAP_TRYFIXED) +#else +#define MMAP_FLAGS_PROBE MMAP_FLAGS +#endif + #define LJ_ALLOC_MMAP_PROBE_MAX 30 #define LJ_ALLOC_MMAP_PROBE_LINEAR 5 @@ -247,7 +253,7 @@ static void *mmap_probe(size_t size) int olderr = errno; int retry; for (retry = 0; retry < LJ_ALLOC_MMAP_PROBE_MAX; retry++) { - void *p = mmap((void *)hint_addr, size, MMAP_PROT, MMAP_FLAGS, -1, 0); + void *p = mmap((void *)hint_addr, size, MMAP_PROT, MMAP_FLAGS_PROBE, -1, 0); uintptr_t addr = (uintptr_t)p; if ((addr >> LJ_ALLOC_MBITS) == 0 && addr >= LJ_ALLOC_MMAP_PROBE_LOWER) { /* We got a suitable address. Bump the hint address. */