Your config-ml.in change broke cris-axis-elf newlib multilib build
Jeff Johnston
jjohnstn@redhat.com
Tue Apr 24 13:49:00 GMT 2007
Thanks Steve. I have just checked in your patch to newlib. I didn't
see the note regarding the script to regenerate - I just used my own
script I always use to regenerate all of newlib. The patched newlib
built fine for i686-linux.
-- Jeff J.
Steve Ellcey wrote:
> I have added some mailing lists to this conversation which started on
> the gcc-patches mailing list at:
>
> http://gcc.gnu.org/ml/gcc-patches/2007-04/msg00875.html
>
> But to recap, Hans-Peter Nilsson reported that my "libtool update
> preparation" patch broke the cris-elf newlib build. Ralf Wildenhues
> diagnosed the problem as a known autoconf 2.59 bug that is fixed in 2.60
> and pointed us to a patch for the problem that he had created at:
>
> http://thread.gmane.org/gmane.comp.sysutils.autoconf.general/8932/focus=8954
>
> This patch basically overrides the broken 2.59 macro with the fixed 2.6
> one. I have successfully reproduced the problem and then applied the
> patch and gotten the build to work so I would like to propose that we
> check in Ralf's patch to newlib. I considered whether we should put
> confsubdir.m4 in the config directory instead of the newlib directory in
> case any other tools needed it but none of the 106 newlib Makefile.am
> files list the config directory in their ACLOCAL_AMFLAGS flags and I
> don't want to change them all so I dropped that idea.
>
> Here is the patch as Ralf proposed it and as I tested it, I also used
> the script from Ralf's email to regenerate files.
>
> Does a newlib maintainer want to approve it? Do any of the
> libtool/toplevel maintainers want to weigh in on the fix? Ralf, if this
> is approved, do you want to check it in yourself (if you can) or do you
> want me to do that?
>
> newlib/ChangeLog:
> 2007-02-02 Ralf Wildenhues <Ralf.Wildenhues <at> gmx.de>
>
> * confsubdir.m4 (AC_CONFIG_SUBDIRS, _AC_OUTPUT_SUBDIRS): New
> file. Override Autoconf-2.59's version of these macros with
> fixed handling of multiple adjacent whitespace in arguments.
> * aclocal.m4: Regenerated forcefully.
> * configure: Ditto.
> * Makefile.in: Ditto.
> * libc/Makefile.in: Ditto.
> * libc/aclocal.m4: Ditto.
> * libc/configure: Ditto.
> * libc/argz/Makefile.in: Ditto.
> * libc/ctype/Makefile.in: Ditto.
> * libc/errno/Makefile.in: Ditto.
> * libc/iconv/Makefile.in: Ditto.
> * libc/iconv/ccs/Makefile.in: Ditto.
> * libc/iconv/ccs/binary/Makefile.in: Ditto.
> * libc/iconv/ces/Makefile.in: Ditto.
> * libc/iconv/lib/Makefile.in: Ditto.
> * libc/locale/Makefile.in: Ditto.
> * libc/machine/Makefile.in: Ditto.
> * libc/machine/aclocal.m4: Ditto.
> * libc/machine/configure: Ditto.
> * libc/misc/Makefile.in: Ditto.
> * libc/posix/Makefile.in: Ditto.
> * libc/reent/Makefile.in: Ditto.
> * libc/search/Makefile.in: Ditto.
> * libc/signal/Makefile.in: Ditto.
> * libc/stdio/Makefile.in: Ditto.
> * libc/stdio64/Makefile.in: Ditto.
> * libc/stdlib/Makefile.in: Ditto.
> * libc/string/Makefile.in: Ditto.
> * libc/sys/Makefile.in: Ditto.
> * libc/sys/aclocal.m4: Ditto.
> * libc/sys/configure: Ditto.
> * libc/sys/linux/Makefile.in: Ditto.
> * libc/sys/linux/aclocal.m4: Ditto.
> * libc/sys/linux/configure: Ditto.
> * libc/sys/linux/argp/Makefile.in: Ditto.
> * libc/sys/linux/cmath/Makefile.in: Ditto.
> * libc/sys/linux/dl/Makefile.in: Ditto.
> * libc/sys/linux/iconv/Makefile.in: Ditto.
> * libc/sys/linux/intl/Makefile.in: Ditto.
> * libc/sys/linux/linuxthreads/Makefile.in: Ditto.
> * libc/sys/linux/linuxthreads/aclocal.m4: Ditto.
> * libc/sys/linux/linuxthreads/configure: Ditto.
> * libc/sys/linux/linuxthreads/machine/Makefile.in: Ditto.
> * libc/sys/linux/linuxthreads/machine/aclocal.m4: Ditto.
> * libc/sys/linux/linuxthreads/machine/configure: Ditto.
> * libc/sys/linux/machine/Makefile.in: Ditto.
> * libc/sys/linux/machine/aclocal.m4: Ditto.
> * libc/sys/linux/machine/configure: Ditto.
> * libc/sys/linux/net/Makefile.in: Ditto.
> * libc/sys/linux/stdlib/Makefile.in: Ditto.
> * libc/syscalls/Makefile.in: Ditto.
> * libc/time/Makefile.in: Ditto.
> * libc/unix/Makefile.in: Ditto.
> * libm/Makefile.in: Ditto.
> * libm/aclocal.m4: Ditto.
> * libm/configure: Ditto.
> * libm/common/Makefile.in: Ditto.
> * libm/machine/Makefile.in: Ditto.
> * libm/machine/aclocal.m4: Ditto.
> * libm/machine/configure: Ditto.
> * libm/math/Makefile.in: Ditto.
> * libm/mathfp/Makefile.in: Ditto.
>
>
> --- /dev/null 2007-04-20 14:44:46.000000000 -0700
> +++ confsubdir.m4 2007-04-20 14:44:00.000000000 -0700
> @@ -0,0 +1,127 @@
> +dnl Fix Autoconf-2.59 AC_CONFIG_SUBDIRS whitespace mangling,
> +dnl by overriding the broken internal Autoconf macro with a
> +dnl backport of the 2.60 fix.
> +dnl
> +dnl This file should be a no-op for Autoconf versions != 2.59.
> +dnl It can be removed once the complete tree has moved to a
> +dnl newer Autoconf version.
> +
> +dnl m4_PACKAGE_VERSION is an undocumented Autoconf macro.
> +dnl We use it because this fix is intended for 2.59 only.
> +dnl A feature test for the broken AC_CONFIG_SUBDIRS instead
> +dnl would be better but is tricky.
> +dnl
> +dnl Use ifdef/ifelse over m4_ifdef/m4_ifelse to be clean for 2.13.
> +dnl Redefine AC_CONFIG_SUBDIRS so aclocal pulls in this file
> +dnl when needed.
> +
> +ifdef([m4_PACKAGE_VERSION],
> +[ifelse(m4_PACKAGE_VERSION, [2.59], [
> +
> +dnl Redefine AC_CONFIG_SUBDIRS so this file is picked up if needed.
> +AC_DEFUN([AC_CONFIG_SUBDIRS], defn([AC_CONFIG_SUBDIRS]))
> +
> +dnl Override the broken macro.
> +# _AC_OUTPUT_SUBDIRS
> +# ------------------
> +# This is a subroutine of AC_OUTPUT, but it does not go into
> +# config.status, rather, it is called after running config.status.
> +m4_define([_AC_OUTPUT_SUBDIRS],
> +[
> +#
> +# CONFIG_SUBDIRS section, as fixed in confsubdir.m4.
> +#
> +if test "$no_recursion" != yes; then
> +
> + # Remove --cache-file and --srcdir arguments so they do not pile up.
> + ac_sub_configure_args=
> + ac_prev=
> + eval "set x $ac_configure_args"
> + shift
> + for ac_arg
> + do
> + if test -n "$ac_prev"; then
> + ac_prev=
> + continue
> + fi
> + case $ac_arg in
> + -cache-file | --cache-file | --cache-fil | --cache-fi \
> + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
> + ac_prev=cache_file ;;
> + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
> + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \
> + | --c=*)
> + ;;
> + --config-cache | -C)
> + ;;
> + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
> + ac_prev=srcdir ;;
> + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
> + ;;
> + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
> + ac_prev=prefix ;;
> + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
> + ;;
> + *)
> + case $ac_arg in
> + *\'*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
> + esac
> + ac_sub_configure_args="$ac_sub_configure_args '$ac_arg'" ;;
> + esac
> + done
> +
> + # Always prepend --prefix to ensure using the same prefix
> + # in subdir configurations.
> + ac_arg="--prefix=$prefix"
> + case $ac_arg in
> + *\'*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
> + esac
> + ac_sub_configure_args="$ac_arg $ac_sub_configure_args"
> +
> + ac_popdir=`pwd`
> + for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue
> +
> + # Do not complain, so a configure script can configure whichever
> + # parts of a large source tree are present.
> + test -d "$srcdir/$ac_dir" || continue
> +
> + AC_MSG_NOTICE([configuring in $ac_dir])
> + AS_MKDIR_P(["$ac_dir"])
> + _AC_SRCPATHS(["$ac_dir"])
> +
> + cd "$ac_dir"
> +
> + # Check for guested configure; otherwise get Cygnus style configure.
> + if test -f "$ac_srcdir/configure.gnu"; then
> + ac_sub_configure=$ac_srcdir/configure.gnu
> + elif test -f "$ac_srcdir/configure"; then
> + ac_sub_configure=$ac_srcdir/configure
> + elif test -f "$ac_srcdir/configure.in"; then
> + # This should be Cygnus configure.
> + ac_sub_configure=$ac_aux_dir/configure
> + else
> + AC_MSG_WARN([no configuration information is in $ac_dir])
> + ac_sub_configure=
> + fi
> +
> + # The recursion is here.
> + if test -n "$ac_sub_configure"; then
> + # Make the cache file name correct relative to the subdirectory.
> + case $cache_file in
> + [[\\/]]* | ?:[[\\/]]* ) ac_sub_cache_file=$cache_file ;;
> + *) # Relative path.
> + ac_sub_cache_file=$ac_top_builddir$cache_file ;;
> + esac
> +
> + AC_MSG_NOTICE([running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir])
> + # The eval makes quoting arguments work.
> + eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \
> + --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" ||
> + AC_MSG_ERROR([$ac_sub_configure failed for $ac_dir])
> + fi
> +
> + cd "$ac_popdir"
> + done
> +fi
> +])# _AC_OUTPUT_SUBDIRS
> +])])
>
More information about the Newlib
mailing list