]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Added check whether malloc(0) returns NULL or not.
authorGuido van Rossum <guido@python.org>
Thu, 10 Jul 1997 22:42:38 +0000 (22:42 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 10 Jul 1997 22:42:38 +0000 (22:42 +0000)
configure
configure.in

index 83418cfdfd54ab18a1eeb655268dd355a9804f7f..41dad2179e5641b2b9e23e8a2069bd6a93284fac 100755 (executable)
--- a/configure
+++ b/configure
@@ -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
index 1f9ba21a265652cd63bdb75bcfc285c11a67fad6..f2510ceda78324279505ee96786d32df640f28ed 100644 (file)
@@ -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 \