From 097a47250043b34926a0a03b5263b237882f1673 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sun, 9 Sep 2007 13:07:55 +0000 Subject: [PATCH] Simplify the malloc/realloc/calloc macrology. --- m4/calloc.m4 | 15 ++------------- m4/malloc.m4 | 25 ++++++++++++++++--------- m4/realloc.m4 | 15 ++------------- 3 files changed, 20 insertions(+), 35 deletions(-) diff --git a/m4/calloc.m4 b/m4/calloc.m4 index 3432493f49..13972729d8 100644 --- a/m4/calloc.m4 +++ b/m4/calloc.m4 @@ -49,19 +49,8 @@ AC_DEFUN([AC_FUNC_CALLOC], # fails), and replace calloc if it is not. AC_DEFUN([gl_FUNC_CALLOC_POSIX], [ - AC_CACHE_CHECK([whether calloc is POSIX compliant], - [gl_cv_func_calloc_posix], - [ - dnl It is too dangerous to try to allocate a large amount of memory: - dnl some systems go to their knees when you do that. So assume that - dnl all Unix implementations of the function are POSIX compliant. - AC_TRY_COMPILE([], - [#if !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) - choke me - #endif - ], [gl_cv_func_calloc_posix=yes], [gl_cv_func_calloc_posix=no]) - ]) - if test $gl_cv_func_calloc_posix = yes; then + AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) + if test $gl_cv_func_malloc_posix = yes; then HAVE_CALLOC_POSIX=1 AC_DEFINE([HAVE_CALLOC_POSIX], 1, [Define if the 'calloc' function is POSIX compliant.]) diff --git a/m4/malloc.m4 b/m4/malloc.m4 index 727192c294..36ca01a151 100644 --- a/m4/malloc.m4 +++ b/m4/malloc.m4 @@ -9,6 +9,22 @@ dnl with or without modifications, as long as this notice is preserved. # Test whether 'malloc' is POSIX compliant (sets errno to ENOMEM when it # fails), and replace malloc if it is not. AC_DEFUN([gl_FUNC_MALLOC_POSIX], +[ + AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) + if test $gl_cv_func_malloc_posix = yes; then + HAVE_MALLOC_POSIX=1 + AC_DEFINE([HAVE_MALLOC_POSIX], 1, + [Define if the 'malloc' function is POSIX compliant.]) + else + AC_LIBOBJ([malloc]) + HAVE_MALLOC_POSIX=0 + fi + AC_SUBST([HAVE_MALLOC_POSIX]) +]) + +# Test whether malloc, realloc, calloc are POSIX compliant, +# Set gl_cv_func_malloc_posix to yes or no accordingly. +AC_DEFUN([gl_CHECK_MALLOC_POSIX], [ AC_CACHE_CHECK([whether malloc, realloc, calloc are POSIX compliant], [gl_cv_func_malloc_posix], @@ -22,13 +38,4 @@ AC_DEFUN([gl_FUNC_MALLOC_POSIX], #endif ], [gl_cv_func_malloc_posix=yes], [gl_cv_func_malloc_posix=no]) ]) - if test $gl_cv_func_malloc_posix = yes; then - HAVE_MALLOC_POSIX=1 - AC_DEFINE([HAVE_MALLOC_POSIX], 1, - [Define if the 'malloc' function is POSIX compliant.]) - else - AC_LIBOBJ([malloc]) - HAVE_MALLOC_POSIX=0 - fi - AC_SUBST([HAVE_MALLOC_POSIX]) ]) diff --git a/m4/realloc.m4 b/m4/realloc.m4 index c00f047992..f9fd935dbb 100644 --- a/m4/realloc.m4 +++ b/m4/realloc.m4 @@ -5,23 +5,12 @@ dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # gl_FUNC_REALLOC_POSIX -# -------------------- +# --------------------- # Test whether 'realloc' is POSIX compliant (sets errno to ENOMEM when it # fails), and replace realloc if it is not. AC_DEFUN([gl_FUNC_REALLOC_POSIX], [ - AC_CACHE_CHECK([whether malloc, realloc, calloc are POSIX compliant], - [gl_cv_func_malloc_posix], - [ - dnl It is too dangerous to try to allocate a large amount of memory: - dnl some systems go to their knees when you do that. So assume that - dnl all Unix implementations of the function are POSIX compliant. - AC_TRY_COMPILE([], - [#if !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) - choke me - #endif - ], [gl_cv_func_malloc_posix=yes], [gl_cv_func_malloc_posix=no]) - ]) + AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) if test $gl_cv_func_malloc_posix = yes; then HAVE_REALLOC_POSIX=1 AC_DEFINE([HAVE_REALLOC_POSIX], 1, -- 2.30.2