diff options
Diffstat (limited to 'gl/m4/malloc.m4')
-rw-r--r-- | gl/m4/malloc.m4 | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/gl/m4/malloc.m4 b/gl/m4/malloc.m4 new file mode 100644 index 0000000..764f2a9 --- /dev/null +++ b/gl/m4/malloc.m4 | |||
@@ -0,0 +1,41 @@ | |||
1 | # malloc.m4 serial 8 | ||
2 | dnl Copyright (C) 2007 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 | ]) | ||