[PATCH:xorg-macros] Use AC_LANG_PROGRAM in XORG_CHECK_MALLOC_ZERO to clear autoconf-2.68 warnings

Matt Turner mattst88 at gmail.com
Sun Dec 5 09:31:02 PST 2010


On Sun, Dec 5, 2010 at 9:36 AM, Alan Coopersmith
<alan.coopersmith at oracle.com> wrote:
> configure.ac:126: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
> ../../lib/autoconf/lang.m4:194: AC_LANG_CONFTEST is expanded from...
> ../../lib/autoconf/general.m4:2730: _AC_RUN_IFELSE is expanded from...
> ../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
> ../../lib/autoconf/general.m4:2749: AC_RUN_IFELSE is expanded from...
> aclocal.m4:1952: XORG_CHECK_MALLOC_ZERO is expanded from...
> configure.ac:126: the top level
>
> Also, calloc() takes two arguments, as the compiler points out when
> you #include <stdlib.h> instead of faking it badly.
>
> Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
> ---
>  xorg-macros.m4.in |   14 ++++++--------
>  1 files changed, 6 insertions(+), 8 deletions(-)
>
> diff --git a/xorg-macros.m4.in b/xorg-macros.m4.in
> index fe29881..c7df523 100644
> --- a/xorg-macros.m4.in
> +++ b/xorg-macros.m4.in
> @@ -904,18 +904,16 @@ AC_ARG_ENABLE(malloc0returnsnull,
>
>  AC_MSG_CHECKING([whether malloc(0) returns NULL])
>  if test "x$MALLOC_ZERO_RETURNS_NULL" = xauto; then
> -       AC_RUN_IFELSE([
> -char *malloc();
> -char *realloc();
> -char *calloc();
> -main() {
> +       AC_RUN_IFELSE([AC_LANG_PROGRAM([
> +#include <stdlib.h>
> +],[
>     char *m0, *r0, *c0, *p;
>     m0 = malloc(0);
>     p = malloc(10);
>     r0 = realloc(p,0);
> -    c0 = calloc(0);
> -    exit(m0 == 0 || r0 == 0 || c0 == 0 ? 0 : 1);
> -}],
> +    c0 = calloc(0,10);
> +    exit((m0 == 0 || r0 == 0 || c0 == 0) ? 0 : 1);
> +])],
>                [MALLOC_ZERO_RETURNS_NULL=yes],
>                [MALLOC_ZERO_RETURNS_NULL=no],
>                [MALLOC_ZERO_RETURNS_NULL=yes])
> --
> 1.7.3.2

I'm not particularly familiar with autotools, but this looks good. I
initially thought the malloc(10) was leaking, but now I see that it is
realloc()'d to 0.

Reviewed-by: Matt Turner <mattst88 at gmail.com>


More information about the xorg-devel mailing list