update changelog
[alioth/cvs.git] / m4 / mmap-anon.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 ])