Commit | Line | Data |
---|---|---|
3d458a81 | 1 | # malloc.m4 serial 13 |
f0007cad | 2 | dnl Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc. |
f240aacb LC |
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 | ||
9157d901 LC |
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]) | |
3d458a81 | 20 | REPLACE_MALLOC=1 |
9157d901 LC |
21 | ]) |
22 | ]) | |
23 | ||
f240aacb LC |
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 | [ | |
9157d901 | 30 | AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) |
f240aacb LC |
31 | AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) |
32 | if test $gl_cv_func_malloc_posix = yes; then | |
f240aacb LC |
33 | AC_DEFINE([HAVE_MALLOC_POSIX], [1], |
34 | [Define if the 'malloc' function is POSIX compliant.]) | |
35 | else | |
3d458a81 | 36 | REPLACE_MALLOC=1 |
f240aacb | 37 | fi |
f240aacb LC |
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. | |
9157d901 LC |
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]) | |
f240aacb LC |
59 | ]) |
60 | ]) |