[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: cross-compilation guesses (5)
From: |
Jim Meyering |
Subject: |
Re: cross-compilation guesses (5) |
Date: |
Wed, 02 May 2012 14:33:09 +0200 |
Bruno Haible wrote:
> Configure outputs when cross-compiling:
>
> checking for GNU libc compatible malloc... no
> checking for GNU libc compatible realloc... no
>
> Here's a proposed patch for improving the guess for glibc targets.
> Again, the question is whether to modify the macro in Autoconf proper.
>
>
> 2012-05-01 Bruno Haible <address@hidden>
>
> *alloc-gnu, eealloc: Avoid "guessing no" when cross-compiling to glibc.
> * m4/malloc.m4 (_gl_FUNC_MALLOC_IF): New macro.
> (gl_FUNC_MALLOC_GNU): Invoke it instead of _AC_FUNC_MALLOC_IF.
> * m4/realloc.m4 (_gl_FUNC_REALLOC_IF): New macro.
> (gl_FUNC_REALLOC_GNU): Invoke it instead of _AC_FUNC_REALLOC_IF.
> * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Require AC_CANONICAL_HOST. When
> cross-compiling, choose the first alternative on glibc systems.
> * m4/eealloc.m4 (gl_EEMALLOC): Require AC_CANONICAL_HOST. When
> cross-compiling, set gl_cv_func_malloc_0_nonnull to 1 on glibc systems.
> (gl_EEREALLOC): Require AC_CANONICAL_HOST. When cross-compiling, set
> gl_cv_func_realloc_0_nonnull to 1 on glibc systems.
>
> --- m4/malloc.m4.orig Tue May 1 23:34:29 2012
> +++ m4/malloc.m4 Tue May 1 23:27:22 2012
> @@ -1,9 +1,32 @@
> -# malloc.m4 serial 13
> +# malloc.m4 serial 14
> dnl Copyright (C) 2007, 2009-2012 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_IF([IF-WORKS], [IF-NOT])
> +# ----------------------------------------
> +# Like _AC_FUNC_MALLOC_IF, defined in Autoconf, with improved
> cross-compilation
> +# guess.
> +AC_DEFUN([_gl_FUNC_MALLOC_IF],
> +[
> + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
> + if test $cross_compiling = no; then
> + _AC_FUNC_MALLOC_IF([$1], [$2])
> + else
> + case "$host_os" in
> + # Guess yes on glibc systems.
> + *-gnu*)
> + $1
> + ;;
> + # If we don't know, assume the worst.
> + *)
> + $2
> + ;;
> + esac
This all looks correct. Thanks.
However, I would find the above code easier to read if it were
written on fewer lines:
case "$host_os" in
*-gnu*) $1 ;; # Guess yes on glibc systems.
*) $2 ;; # If we don't know, assume the worst.
esac