1
0
forked from GitHub/gf-core

compatibility issue for MacOS X

This commit is contained in:
kr.angelov
2013-06-26 07:03:32 +00:00
parent 38b3dfcad6
commit 966d3aee3f
2 changed files with 5 additions and 9 deletions

View File

@@ -48,16 +48,12 @@ pgf_jit_alloc_page(PgfJitState* state)
{
void *page;
size_t page_size = sysconf(_SC_PAGESIZE);
size_t page_size = getpagesize();
total_size += page_size;
if (posix_memalign(&page, page_size, page_size) != 0) {
gu_fatal("Memory allocation failed");
}
if (mprotect(page, page_size,
PROT_READ | PROT_WRITE | PROT_EXEC) != 0) {
gu_fatal("mprotect failed");
}
PgfPageFinalizer* fin = gu_new(PgfPageFinalizer, state->pool);
fin->fin.fn = pgf_jit_finalize_page;
@@ -85,7 +81,7 @@ pgf_jit_init(GuPool* tmp_pool, GuPool* pool)
static void
pgf_jit_make_space(PgfJitState* state)
{
size_t page_size = sysconf(_SC_PAGESIZE);
size_t page_size = getpagesize();
if (jit_get_ip().ptr + JIT_CODE_WINDOW > ((char*) state->buf) + page_size) {
jit_flush_code(state->buf, jit_get_ip().ptr);
pgf_jit_alloc_page(state);

View File

@@ -34,7 +34,7 @@
#ifndef __lightning_funcs_h
#define __lightning_funcs_h
#ifdef __linux__
#if defined(__linux__) || defined(__APPLE__)
#include <unistd.h>
#include <sys/mman.h>
#endif
@@ -51,7 +51,7 @@ jit_flush_code(void *dest, void *end)
execution of the data and stack segment are becoming more
and more common (Fedora, for example), so we implement our
jit_flush_code as an mprotect. */
#ifdef __linux__
#if defined(__linux__) || defined(__APPLE__)
static unsigned long prev_page = 0, prev_length = 0;
unsigned long page, length;
#ifdef PAGESIZE
@@ -59,7 +59,7 @@ jit_flush_code(void *dest, void *end)
#else
static int page_size = -1;
if (page_size == -1)
page_size = sysconf (_SC_PAGESIZE);
page_size = getpagesize();
#endif
page = (long) dest & ~(page_size - 1);