diff options
author | Guido van Rossum <guido@python.org> | 1997-07-10 22:42:38 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1997-07-10 22:42:38 (GMT) |
commit | ad7137027916b3c2ec409eeb0eaf99af921dccf4 (patch) | |
tree | 6068ed5e79a31939d8b3586a4915839da8b96cbe | |
parent | 4b11c74f7c26038f94565a5b73d102bd96cc0e9f (diff) | |
download | cpython-ad7137027916b3c2ec409eeb0eaf99af921dccf4.zip cpython-ad7137027916b3c2ec409eeb0eaf99af921dccf4.tar.gz cpython-ad7137027916b3c2ec409eeb0eaf99af921dccf4.tar.bz2 |
Added check whether malloc(0) returns NULL or not.
-rwxr-xr-x | configure | 56 | ||||
-rw-r--r-- | configure.in | 26 |
2 files changed, 81 insertions, 1 deletions
@@ -1,6 +1,6 @@ #! /bin/sh -# From configure.in Revision: 1.53 +# From configure.in Revision: 1.54 # Guess values for system-dependent variables and create Makefiles. # Generated automatically using autoconf version 2.12 @@ -3666,6 +3666,59 @@ fi echo "$ac_t""$ac_cv_func_getopt" 1>&6 test $ac_cv_func_getopt = no && LIBOBJS="$LIBOBJS getopt.o" +# check whether malloc(0) returns NULL or not + +echo $ac_n "checking what malloc(0) returns""... $ac_c" 1>&6 +echo "configure:3673: checking what malloc(0) returns" >&5 +if eval "test \"`echo '$''{'ac_cv_malloc_zero'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$cross_compiling" = yes; then + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } +else + cat > conftest.$ac_ext <<EOF +#line 3681 "configure" +#include "confdefs.h" +#include <stdio.h> +#ifdef HAVE_STDLIB +#include <stdlib.h> +#else +char *malloc(), *realloc(); +int *free(); +#endif +main() { + char *p; + p = malloc(0); + if (p == NULL) exit(1); + p = realloc(p, 0); + if (p == NULL) exit(1); + free(p); + exit(0); +} +EOF +if { (eval echo configure:3700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +then + ac_cv_malloc_zero=nonnull +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_malloc_zero=null +fi +rm -fr conftest* +fi + +fi + +echo "$ac_t""$ac_cv_malloc_zero" 1>&6 +if test "$ac_cv_malloc_zero" = null +then + cat >> confdefs.h <<\EOF +#define MALLOC_ZERO_RETURNS_NULL 1 +EOF + +fi + # generate output files trap '' 1 2 15 cat > confcache <<\EOF @@ -3820,6 +3873,7 @@ s%@LIBOBJS@%$LIBOBJS%g s%@WANT_SIGFPE_HANDLER@%$WANT_SIGFPE_HANDLER%g s%@LIBM@%$LIBM%g s%@LIBC@%$LIBC%g +s%@MALLOC_ZERO_RETURNS_NULL@%$MALLOC_ZERO_RETURNS_NULL%g CEOF EOF diff --git a/configure.in b/configure.in index 1f9ba21..f2510ce 100644 --- a/configure.in +++ b/configure.in @@ -582,6 +582,32 @@ AC_MSG_RESULT($ac_cv_func_getopt) test $ac_cv_func_getopt = no && LIBOBJS="$LIBOBJS getopt.o" AC_SUBST(LIBOBJS)dnl +# check whether malloc(0) returns NULL or not +AC_SUBST(MALLOC_ZERO_RETURNS_NULL) +AC_MSG_CHECKING(what malloc(0) returns) +AC_CACHE_VAL(ac_cv_malloc_zero, +[AC_TRY_RUN([#include <stdio.h> +#ifdef HAVE_STDLIB +#include <stdlib.h> +#else +char *malloc(), *realloc(); +int *free(); +#endif +main() { + char *p; + p = malloc(0); + if (p == NULL) exit(1); + p = realloc(p, 0); + if (p == NULL) exit(1); + free(p); + exit(0); +}], ac_cv_malloc_zero=nonnull, ac_cv_malloc_zero=null)]) +AC_MSG_RESULT($ac_cv_malloc_zero) +if test "$ac_cv_malloc_zero" = null +then + AC_DEFINE(MALLOC_ZERO_RETURNS_NULL) +fi + # generate output files AC_OUTPUT(Makefile \ Objects/Makefile \ |