1 | # malloc.m4 serial 13
|
---|
2 | dnl Copyright (C) 2007, 2009-2012 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_GNU
|
---|
8 | # ------------------
|
---|
9 | # Test whether 'malloc (0)' is handled like in GNU libc, and replace malloc if
|
---|
10 | # it is not.
|
---|
11 | AC_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.
|
---|
28 | AC_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.
|
---|
42 | AC_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 | ])
|
---|