Home | History | Annotate | Line # | Download | only in m4
      1 # mmap-anon.m4 serial 3
      2 dnl Copyright (C) 2005 Free Software Foundation, Inc.
      3 dnl This file is free software; the Free Software Foundation
      4 dnl gives unlimited permission to copy and/or distribute it,
      5 dnl with or without modifications, as long as this notice is preserved.
      6 
      7 AC_DEFUN([gl_FUNC_MMAP_ANON],
      8 [
      9   dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57.
     10   AC_REQUIRE([AC_PROG_CPP])
     11   AC_REQUIRE([AC_PROG_EGREP])
     12 
     13   dnl Persuade glibc <sys/mman.h> to define MAP_ANONYMOUS.
     14   AC_REQUIRE([AC_GNU_SOURCE])
     15 
     16   # Check for mmap()
     17   AC_FUNC_MMAP
     18 
     19   # Try to allow MAP_ANONYMOUS.
     20   gl_have_mmap_anonymous=no
     21   if test $ac_cv_func_mmap_fixed_mapped = yes; then
     22     AC_MSG_CHECKING([for MAP_ANONYMOUS])
     23     AC_EGREP_CPP([I cant identify this map.], [
     24 #include <sys/mman.h>
     25 #ifdef MAP_ANONYMOUS
     26     I cant identify this map.
     27 #endif
     28 ],
     29       [gl_have_mmap_anonymous=yes])
     30     if test $gl_have_mmap_anonymous != yes; then
     31       AC_EGREP_CPP([I cant identify this map.], [
     32 #include <sys/mman.h>
     33 #ifdef MAP_ANON
     34     I cant identify this map.
     35 #endif
     36 ],
     37         [AC_DEFINE(MAP_ANONYMOUS, MAP_ANON,
     38           [Define to a substitute value for mmap()'s MAP_ANONYMOUS flag.])
     39          gl_have_mmap_anonymous=yes])
     40     fi
     41     AC_MSG_RESULT($gl_have_mmap_anonymous)
     42     if test $gl_have_mmap_anonymous = yes; then
     43       AC_DEFINE(HAVE_MAP_ANONYMOUS, 1,
     44         [Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including
     45          config.h and <sys/mman.h>.])
     46     fi
     47   fi
     48 ])
     49