434
|
1 # malloc.m4 serial 9
|
|
2 dnl Copyright (C) 2007, 2009, 2010 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 # gl_FUNC_MALLOC_POSIX
|
|
8 # --------------------
|
|
9 # Test whether 'malloc' is POSIX compliant (sets errno to ENOMEM when it
|
|
10 # fails), and replace malloc if it is not.
|
|
11 AC_DEFUN([gl_FUNC_MALLOC_POSIX],
|
|
12 [
|
|
13 AC_REQUIRE([gl_CHECK_MALLOC_POSIX])
|
|
14 if test $gl_cv_func_malloc_posix = yes; then
|
|
15 HAVE_MALLOC_POSIX=1
|
|
16 AC_DEFINE([HAVE_MALLOC_POSIX], [1],
|
|
17 [Define if the 'malloc' function is POSIX compliant.])
|
|
18 else
|
|
19 AC_LIBOBJ([malloc])
|
|
20 HAVE_MALLOC_POSIX=0
|
|
21 fi
|
|
22 AC_SUBST([HAVE_MALLOC_POSIX])
|
|
23 ])
|
|
24
|
|
25 # Test whether malloc, realloc, calloc are POSIX compliant,
|
|
26 # Set gl_cv_func_malloc_posix to yes or no accordingly.
|
|
27 AC_DEFUN([gl_CHECK_MALLOC_POSIX],
|
|
28 [
|
|
29 AC_CACHE_CHECK([whether malloc, realloc, calloc are POSIX compliant],
|
|
30 [gl_cv_func_malloc_posix],
|
|
31 [
|
|
32 dnl It is too dangerous to try to allocate a large amount of memory:
|
|
33 dnl some systems go to their knees when you do that. So assume that
|
|
34 dnl all Unix implementations of the function are POSIX compliant.
|
|
35 AC_TRY_COMPILE([],
|
|
36 [#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
|
|
37 choke me
|
|
38 #endif
|
|
39 ], [gl_cv_func_malloc_posix=yes], [gl_cv_func_malloc_posix=no])
|
|
40 ])
|
|
41 ])
|