from autoconf
[gnulib.git] / m4 / realloc.m4
index 431ba5b..7695e89 100644 (file)
@@ -1,18 +1,19 @@
-#serial 1
+#serial 6
 
 dnl From Jim Meyering.
 dnl Determine whether realloc works when both arguments are 0.
 dnl If it doesn't, arrange to use the replacement function.
 dnl
-dnl If you use this macro in a package, you should
-dnl add the following two lines to acconfig.h:
-dnl  /* Define to rpl_realloc if the replacement function should be used.  */
-dnl  #undef realloc
-dnl
 
-AC_DEFUN(jm_FUNC_REALLOC,
+AC_DEFUN([jm_FUNC_REALLOC],
 [
- AC_CACHE_CHECK([for working realloc], jm_cv_func_working_realloc,
+ dnl xmalloc.c requires that this symbol be defined so it doesn't
+ dnl mistakenly use a broken realloc -- as it might if this test were omitted.
+ AC_DEFINE(HAVE_DONE_WORKING_REALLOC_CHECK, 1,
+           [Define if the realloc check has been performed. ])
+
+ AC_CACHE_CHECK([whether realloc(0,0) returns a non-NULL pointer],
+                jm_cv_func_working_realloc,
   [AC_TRY_RUN([
     char *realloc ();
     int
@@ -23,11 +24,12 @@ AC_DEFUN(jm_FUNC_REALLOC,
          ],
         jm_cv_func_working_realloc=yes,
         jm_cv_func_working_realloc=no,
-        dnl When crosscompiling, assume realloc is broken.
+        dnl When crosscompiling, assume realloc(0,0) returns NULL.
         jm_cv_func_working_realloc=no)
   ])
   if test $jm_cv_func_working_realloc = no; then
-    LIBOBJS="$LIBOBJS realloc.o"
-    AC_DEFINE_UNQUOTED(realloc, rpl_realloc)
+    AC_LIBOBJ(realloc)
+    AC_DEFINE(realloc, rpl_realloc,
+      [Define to rpl_realloc if the replacement function should be used.])
   fi
 ])