Check for mmap()
Apparently there exist systems with mprotect(), but not mmap()?
diff --git a/configure.ac b/configure.ac
index 96dbca5..ba3290a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -34,7 +34,7 @@
# Functions and headers
-AC_CHECK_FUNCS(mprotect sysconf getpagesize)
+AC_CHECK_FUNCS(mprotect sysconf getpagesize mmap)
AC_CHECK_HEADERS(unistd.h sys/mman.h)
# Compiler flags
diff --git a/test/test-blob.c b/test/test-blob.c
index f3f7a86..5fcb208 100644
--- a/test/test-blob.c
+++ b/test/test-blob.c
@@ -28,7 +28,7 @@
/* Unit tests for hb-blob.h */
-#if defined(HAVE_SYS_MMAN_H) && defined(HAVE_MPROTECT)
+#if defined(HAVE_SYS_MMAN_H) && defined(HAVE_MPROTECT) && defined(HAVE_MMAP)
# define TEST_MMAP 1
@@ -109,6 +109,7 @@
}
+#ifdef TEST_MMAP
static uintptr_t
get_pagesize (void)
{
@@ -133,6 +134,7 @@
free_up (fixture);
munmap (fixture->data, get_pagesize ());
}
+#endif
#include <errno.h>
static void
@@ -164,7 +166,7 @@
free_func = (hb_destroy_func_t) free_up_free;
break;
-#if TEST_MMAP
+#ifdef TEST_MMAP
case HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE:
{
uintptr_t pagesize = get_pagesize ();