X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Frealloc.m4;h=7695e89c852fb1cc57064d2e3caf85bbdcf8e971;hb=d374f61ddcf9d79d92bf407b5e6ba0e4847b1a90;hp=b4afe939d0e6fc04d3f35b7694bd6314a5650c84;hpb=47a93f77a5ec7f3515a06e91218626f01312c702;p=gnulib.git diff --git a/m4/realloc.m4 b/m4/realloc.m4 index b4afe939d..7695e89c8 100644 --- a/m4/realloc.m4 +++ b/m4/realloc.m4 @@ -1,33 +1,35 @@ -#serial 1 +#serial 6 dnl From Jim Meyering. -dnl Determine whether realloc accepts 0 as its first argument. +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 main () { - exit (realloc (0, 1) ? 0 : 1); + exit (realloc (0, 0) ? 0 : 1); } ], 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 ])