+2010-06-21 Bruno Haible <bruno@clisp.org>
+
+ Use modern idiom for malloc() replacement.
+ * modules/malloc (configure.ac): Invoke gl_FUNC_MALLOC_GNU instead of
+ AC_FUNC_MALLOC.
+ * m4/malloc.m4 (gl_FUNC_MALLOC_GNU): New macro, mostly copied from
+ Autoconf's AC_FUNC_MALLOC.
+ (gl_FUNC_MALLOC_POSIX): Rely on gl_STDLIB_H_DEFAULTS to initialize
+ HAVE_MALLOC_POSIX. Invoke gl_REPLACE_MALLOC.
+ (gl_REPLACE_MALLOC): New macro.
+ Reported by Richard Lloyd <richard.lloyd@connectinternetsolutions.com>.
+
2010-06-20 Richard Lloyd <richard.lloyd@connectinternetsolutions.com>
stdio.in.h: fix compilation failure when using HP-UX 11's C compiler
-# malloc.m4 serial 9
+# malloc.m4 serial 10
dnl Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+# gl_FUNC_MALLOC_GNU
+# ------------------
+# Test whether 'malloc (0)' is handled like in GNU libc, and replace malloc if
+# it is not.
+AC_DEFUN([gl_FUNC_MALLOC_GNU],
+[
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ dnl _AC_FUNC_MALLOC_IF is defined in Autoconf.
+ _AC_FUNC_MALLOC_IF(
+ [AC_DEFINE([HAVE_MALLOC], [1],
+ [Define to 1 if your system has a GNU libc compatible 'malloc'
+ function, and to 0 otherwise.])],
+ [AC_DEFINE([HAVE_MALLOC], [0])
+ gl_REPLACE_MALLOC
+ ])
+])
+
# gl_FUNC_MALLOC_POSIX
# --------------------
# 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_STDLIB_H_DEFAULTS])
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
+ gl_REPLACE_MALLOC
fi
- AC_SUBST([HAVE_MALLOC_POSIX])
])
# Test whether malloc, realloc, calloc are POSIX compliant,
], [gl_cv_func_malloc_posix=yes], [gl_cv_func_malloc_posix=no])
])
])
+
+AC_DEFUN([gl_REPLACE_MALLOC],
+[
+ AC_LIBOBJ([malloc])
+ HAVE_MALLOC_POSIX=0
+])