Permalink
Switch branches/tags
snapshots/gcc-4.8-20120701 snapshots/gcc-4.8-20120624 snapshots/gcc-4.8-20120617 snapshots/gcc-4.8-20120610 snapshots/gcc-4.8-20120603 snapshots/gcc-4.8-20120527 snapshots/gcc-4.8-20120520 snapshots/gcc-4.8-20120513 snapshots/gcc-4.8-20120506 snapshots/gcc-4.8-20120429 snapshots/gcc-4.8-20120422 snapshots/gcc-4.8-20120415 snapshots/gcc-4.8-20120408 snapshots/gcc-4.8-20120401 snapshots/gcc-4.8-20120325 snapshots/gcc-4.8-20120318 snapshots/gcc-4.8-20120311 snapshots/gcc-4.8-20120304 snapshots/gcc-4.8-20120302 snapshots/gcc-4.7.1-RC-20120606 snapshots/gcc-4.7.0-RC-20120314 snapshots/gcc-4.7.0-RC-20120302 snapshots/gcc-4.7-20120707 snapshots/gcc-4.7-20120630 snapshots/gcc-4.7-20120623 snapshots/gcc-4.7-20120616 snapshots/gcc-4.7-20120609 snapshots/gcc-4.7-20120602 snapshots/gcc-4.7-20120526 snapshots/gcc-4.7-20120519 snapshots/gcc-4.7-20120512 snapshots/gcc-4.7-20120505 snapshots/gcc-4.7-20120428 snapshots/gcc-4.7-20120421 snapshots/gcc-4.7-20120414 snapshots/gcc-4.7-20120407 snapshots/gcc-4.7-20120331 snapshots/gcc-4.7-20120324 snapshots/gcc-4.7-20120225 snapshots/gcc-4.7-20120218 snapshots/gcc-4.7-20120211 snapshots/gcc-4.7-20120204 snapshots/gcc-4.7-20120128 snapshots/gcc-4.7-20120121 snapshots/gcc-4.7-20120114 snapshots/gcc-4.7-20120107 snapshots/gcc-4.7-20111231 snapshots/gcc-4.7-20111224 snapshots/gcc-4.7-20111217 snapshots/gcc-4.7-20111210 snapshots/gcc-4.7-20111203 snapshots/gcc-4.7-20111126 snapshots/gcc-4.7-20111119 snapshots/gcc-4.7-20111112 snapshots/gcc-4.7-20111105 snapshots/gcc-4.7-20111029 snapshots/gcc-4.7-20111022 snapshots/gcc-4.7-20111015 snapshots/gcc-4.7-20111008 snapshots/gcc-4.7-20111001 snapshots/gcc-4.7-20110924 snapshots/gcc-4.7-20110917 snapshots/gcc-4.7-20110910 snapshots/gcc-4.7-20110903 snapshots/gcc-4.7-20110827 snapshots/gcc-4.7-20110820 snapshots/gcc-4.7-20110813 snapshots/gcc-4.7-20110806 snapshots/gcc-4.7-20110730 snapshots/gcc-4.7-20110723 snapshots/gcc-4.7-20110716 snapshots/gcc-4.7-20110709 snapshots/gcc-4.7-20110702 snapshots/gcc-4.7-20110625 snapshots/gcc-4.7-20110618 snapshots/gcc-4.7-20110611 snapshots/gcc-4.7-20110604 snapshots/gcc-4.7-20110528 snapshots/gcc-4.7-20110521 snapshots/gcc-4.7-20110514 snapshots/gcc-4.7-20110507 snapshots/gcc-4.7-20110430 snapshots/gcc-4.7-20110423 snapshots/gcc-4.7-20110416 snapshots/gcc-4.7-20110409 snapshots/gcc-4.7-20110402 snapshots/gcc-4.6.3-RC-20120223 snapshots/gcc-4.6.2-RC-20111019 snapshots/gcc-4.6.1-RC-20110620 snapshots/gcc-4.6-20120706 snapshots/gcc-4.6-20120629 snapshots/gcc-4.6-20120622 snapshots/gcc-4.6-20120615 snapshots/gcc-4.6-20120608 snapshots/gcc-4.6-20120601 snapshots/gcc-4.6-20120525 snapshots/gcc-4.6-20120518 snapshots/gcc-4.6-20120511 snapshots/gcc-4.6-20120504 snapshots/gcc-4.6-20120427
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
93 lines (88 sloc) 3.2 KB
# mmap(2) blacklisting. Some platforms provide the mmap library routine
# but don't support all of the features we need from it.
AC_DEFUN([AC_FUNC_MMAP_BLACKLIST],
[
AC_CHECK_HEADER([sys/mman.h],
[libffi_header_sys_mman_h=yes], [libffi_header_sys_mman_h=no])
AC_CHECK_FUNC([mmap], [libffi_func_mmap=yes], [libffi_func_mmap=no])
if test "$libffi_header_sys_mman_h" != yes \
|| test "$libffi_func_mmap" != yes; then
ac_cv_func_mmap_file=no
ac_cv_func_mmap_dev_zero=no
ac_cv_func_mmap_anon=no
else
AC_CACHE_CHECK([whether read-only mmap of a plain file works],
ac_cv_func_mmap_file,
[# Add a system to this blacklist if
# mmap(0, stat_size, PROT_READ, MAP_PRIVATE, fd, 0) doesn't return a
# memory area containing the same data that you'd get if you applied
# read() to the same fd. The only system known to have a problem here
# is VMS, where text files have record structure.
case "$host_os" in
vms* | ultrix*)
ac_cv_func_mmap_file=no ;;
*)
ac_cv_func_mmap_file=yes;;
esac])
AC_CACHE_CHECK([whether mmap from /dev/zero works],
ac_cv_func_mmap_dev_zero,
[# Add a system to this blacklist if it has mmap() but /dev/zero
# does not exist, or if mmapping /dev/zero does not give anonymous
# zeroed pages with both the following properties:
# 1. If you map N consecutive pages in with one call, and then
# unmap any subset of those pages, the pages that were not
# explicitly unmapped remain accessible.
# 2. If you map two adjacent blocks of memory and then unmap them
# both at once, they must both go away.
# Systems known to be in this category are Windows (all variants),
# VMS, and Darwin.
case "$host_os" in
vms* | cygwin* | pe | mingw* | darwin* | ultrix* | hpux10* | hpux11.00)
ac_cv_func_mmap_dev_zero=no ;;
*)
ac_cv_func_mmap_dev_zero=yes;;
esac])
# Unlike /dev/zero, the MAP_ANON(YMOUS) defines can be probed for.
AC_CACHE_CHECK([for MAP_ANON(YMOUS)], ac_cv_decl_map_anon,
[AC_TRY_COMPILE(
[#include <sys/types.h>
#include <sys/mman.h>
#include <unistd.h>
#ifndef MAP_ANONYMOUS
#define MAP_ANONYMOUS MAP_ANON
#endif
],
[int n = MAP_ANONYMOUS;],
ac_cv_decl_map_anon=yes,
ac_cv_decl_map_anon=no)])
if test $ac_cv_decl_map_anon = no; then
ac_cv_func_mmap_anon=no
else
AC_CACHE_CHECK([whether mmap with MAP_ANON(YMOUS) works],
ac_cv_func_mmap_anon,
[# Add a system to this blacklist if it has mmap() and MAP_ANON or
# MAP_ANONYMOUS, but using mmap(..., MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
# doesn't give anonymous zeroed pages with the same properties listed
# above for use of /dev/zero.
# Systems known to be in this category are Windows, VMS, and SCO Unix.
case "$host_os" in
vms* | cygwin* | pe | mingw* | sco* | udk* )
ac_cv_func_mmap_anon=no ;;
*)
ac_cv_func_mmap_anon=yes;;
esac])
fi
fi
if test $ac_cv_func_mmap_file = yes; then
AC_DEFINE(HAVE_MMAP_FILE, 1,
[Define if read-only mmap of a plain file works.])
fi
if test $ac_cv_func_mmap_dev_zero = yes; then
AC_DEFINE(HAVE_MMAP_DEV_ZERO, 1,
[Define if mmap of /dev/zero works.])
fi
if test $ac_cv_func_mmap_anon = yes; then
AC_DEFINE(HAVE_MMAP_ANON, 1,
[Define if mmap with MAP_ANON(YMOUS) works.])
fi
])