From eca2a7eca44c0eb51d1a79b1fe0ff73cb69098de Mon Sep 17 00:00:00 2001 From: dzaima Date: Sun, 26 Sep 2021 22:41:41 +0300 Subject: [PATCH] wrap MAP_FIXED_NOREPLACE in an ifdef --- src/jit/nvm_x86_64.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/jit/nvm_x86_64.c b/src/jit/nvm_x86_64.c index 01786ee1..078adb0b 100644 --- a/src/jit/nvm_x86_64.c +++ b/src/jit/nvm_x86_64.c @@ -45,8 +45,11 @@ static void* mmap_nvm(u64 sz) { u64 randOff = wyrand(&nvm_mmap_seed) & (MAX_DIST>>1)-1; u64 loc = near+randOff & ~(ps-1); // printf("request %d: %p\n", attempt, (void*)loc); - - void* c = mmap((void*)loc, sz, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_NORESERVE|MAP_PRIVATE|MAP_ANON|MAP_FIXED_NOREPLACE, -1, 0); + int noreplace = 0; + #ifdef MAP_FIXED_NOREPLACE + noreplace|= MAP_FIXED_NOREPLACE; + #endif + void* c = mmap((void*)loc, sz, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_NORESERVE|MAP_PRIVATE|MAP_ANON|noreplace, -1, 0); if (c==NULL) continue; i64 dist = (i64)near - (i64)c;