1# malloc.m4 serial 13 2dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc. 3dnl This file is free software; the Free Software Foundation 4dnl gives unlimited permission to copy and/or distribute it, 5dnl with or without modifications, as long as this notice is preserved. 6 7# gl_FUNC_MALLOC_GNU 8# ------------------ 9# Test whether 'malloc (0)' is handled like in GNU libc, and replace malloc if 10# it is not. 11AC_DEFUN([gl_FUNC_MALLOC_GNU], 12[ 13 AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) 14 dnl _AC_FUNC_MALLOC_IF is defined in Autoconf. 15 _AC_FUNC_MALLOC_IF( 16 [AC_DEFINE([HAVE_MALLOC_GNU], [1], 17 [Define to 1 if your system has a GNU libc compatible 'malloc' 18 function, and to 0 otherwise.])], 19 [AC_DEFINE([HAVE_MALLOC_GNU], [0]) 20 REPLACE_MALLOC=1 21 ]) 22]) 23 24# gl_FUNC_MALLOC_POSIX 25# -------------------- 26# Test whether 'malloc' is POSIX compliant (sets errno to ENOMEM when it 27# fails), and replace malloc if it is not. 28AC_DEFUN([gl_FUNC_MALLOC_POSIX], 29[ 30 AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) 31 AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) 32 if test $gl_cv_func_malloc_posix = yes; then 33 AC_DEFINE([HAVE_MALLOC_POSIX], [1], 34 [Define if the 'malloc' function is POSIX compliant.]) 35 else 36 REPLACE_MALLOC=1 37 fi 38]) 39 40# Test whether malloc, realloc, calloc are POSIX compliant, 41# Set gl_cv_func_malloc_posix to yes or no accordingly. 42AC_DEFUN([gl_CHECK_MALLOC_POSIX], 43[ 44 AC_CACHE_CHECK([whether malloc, realloc, calloc are POSIX compliant], 45 [gl_cv_func_malloc_posix], 46 [ 47 dnl It is too dangerous to try to allocate a large amount of memory: 48 dnl some systems go to their knees when you do that. So assume that 49 dnl all Unix implementations of the function are POSIX compliant. 50 AC_COMPILE_IFELSE( 51 [AC_LANG_PROGRAM( 52 [[]], 53 [[#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ 54 choke me 55 #endif 56 ]])], 57 [gl_cv_func_malloc_posix=yes], 58 [gl_cv_func_malloc_posix=no]) 59 ]) 60]) 61