X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2Fposix%2FOSMem.c;h=51737ad65057f0c33e866d121cf76b131970eee4;hb=d874b8c93b737bf26c949ef7bf19fc43e335bd1f;hp=9b71d1c7dbb42f90e56e4fcb11c17661c38db52d;hpb=8425c809cc6ba7346b57fb58920ff424533059f2;p=ghc-hetmet.git diff --git a/rts/posix/OSMem.c b/rts/posix/OSMem.c index 9b71d1c..51737ad 100644 --- a/rts/posix/OSMem.c +++ b/rts/posix/OSMem.c @@ -25,6 +25,9 @@ #ifdef HAVE_STRING_H #include #endif +#ifdef HAVE_FCNTL_H +#include +#endif #include @@ -109,8 +112,8 @@ my_mmap (void *addr, lnat size) vm_protect(mach_task_self(),(vm_address_t)ret,size,FALSE,VM_PROT_READ|VM_PROT_WRITE); } #else - ret = mmap(addr, size, PROT_READ | PROT_WRITE | PROT_EXEC, - MAP_ANON | MAP_PRIVATE, -1, 0); + ret = mmap(addr, size, PROT_READ | PROT_WRITE, + MAP_ANON | MAP_PRIVATE, -1, 0); #endif if (ret == (void *)-1) { @@ -173,7 +176,7 @@ void * osGetMBlocks(nat n) { caddr_t ret; - lnat size = MBLOCK_SIZE * n; + lnat size = MBLOCK_SIZE * (lnat)n; if (next_request == 0) { // use gen_map_mblocks the first time. @@ -234,6 +237,6 @@ void setExecutable (void *p, lnat len, rtsBool exec) StgWord size = startOfLastPage - startOfFirstPage + pageSize; if (mprotect((void*)startOfFirstPage, (size_t)size, (exec ? PROT_EXEC : 0) | PROT_READ | PROT_WRITE) != 0) { - barf("makeExecutable: failed to protect 0x%p\n", p); + barf("setExecutable: failed to protect 0x%p\n", p); } }