dnl Check for mmap() dnl AC_FUNC_MMAP checks for private fixed mappings, we don't need dnl fixed mappings, so check only wether private mappings work. dnl AC_FUNC_MMAP would fail on HP-UX for example. AC_DEFUN([AC_C_FUNC_MMAP_PRIVATE], [ AC_CACHE_CHECK([for working mmap], [ac_cv_c_mmap_private], [ AC_RUN_IFELSE([AC_LANG_SOURCE([ #include #include #include #ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_SYS_STAT_H #include #endif #include int main(void) { char *data, *data2, *data3; unsigned i, datasize = 1024; int fd; /* First, make a file with some known garbage in it. */ data = (char*) malloc(datasize); if(!data) return 1; for(i=0;i]], [[mmap((void *)0, 0, PROT_READ | PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);]])], [ac_cv_c_mmap_anonymous='MAP_ANONYMOUS'], [ AC_LINK_IFELSE( [AC_LANG_PROGRAM([[ /* OPENBSD WORKAROUND - DND*/ #include /* OPENBSD WORKAROUND - END*/ #include ]], [[mmap((void *)0, 0, PROT_READ | PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0);]])], [ac_cv_c_mmap_anonymous='MAP_ANON'] ) ] ) ]) if test "$ac_cv_c_mmap_anonymous" != "no"; then AC_DEFINE_UNQUOTED([ANONYMOUS_MAP],[$ac_cv_c_mmap_anonymous],[mmap flag for anonymous maps]) fi ])