autoconf 2.61 on debian etch and GCC

Ralf Wildenhues Ralf.Wildenhues@gmx.de
Tue Jul 3 16:48:00 GMT 2007


* Laurent GUERBY wrote on Tue, Jul 03, 2007 at 12:45:45PM CEST:
> 
> According to Rask Ingemann Lambertsen autoconf 2.61
> doesn't work correctly for GCC (see below).
[...]
> On Fri, 2007-06-29 at 11:27 +0200, Rask Ingemann Lambertsen wrote:
> > On Mon, Jun 25, 2007 at 08:11:31PM +0200, Laurent GUERBY wrote:
> > > 
> > > If 2.61 really causes us trouble I'll try to do a manual install of 2.59
> > > from whatever .tar.gz I can find.
> > 
> >    It does, as the config.status it produces is broken. Look at this line:
> > 
> > s,@TOPLEVEL_CONFIGURE_ARGUMENTS@,|#_!!_#|/home/rask/src/gcc/configure linux gnu,g

Please consider the following patch.  $ac_configure_args has the
following differences to original args:
- duplicate-argument suppression,
- quoting to be used inside "eval" as below,
- --no-create, --no-recursion, and --silent stripped out
  (variables $no_create, $no_recursion, and $silent provide these;
  I don't think $TOPLEVEL_CONFIGURE_ARGUMENTS needs the first two).

I've tested it very lightly only (mostly because errors will typically
happen with setups different from mine).  The 'set x ..; shift' is to
accommodate for old (non-POSIX) shells that error out on 'set --', not
sure if gcc has a policy against this kind of change.

(FWIW, the "|#_!!_#|" in the line is intentional and not a bug.)

I'd be interested in other GCC issues using Autoconf 2.61 over 2.59.

Cheers,
Ralf

ChangeLog:
2007-07-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac (TOPLEVEL_CONFIGURE_ARGUMENTS): Use
	$ac_configure_args, not "$@".  Do not use `set --'.
	(baseargs): Likewise.
	* configure: Regenerate.

Index: configure.ac
===================================================================
--- configure.ac	(revision 126245)
+++ configure.ac	(working copy)
@@ -88,7 +88,8 @@
 # Export original configure arguments for use by sub-configures.
 # Quote arguments with shell meta charatcers.
 TOPLEVEL_CONFIGURE_ARGUMENTS=
-set -- "$progname" "$@"
+eval "set x \"$progname\" $ac_configure_args"
+shift
 for ac_arg
 do
   case "$ac_arg" in
@@ -2090,7 +2091,8 @@
 baseargs=
 keep_next=no
 skip_next=no
-eval "set -- $ac_configure_args"
+eval "set x $ac_configure_args"
+shift
 for ac_arg
 do
   if test X"$skip_next" = X"yes"; then



More information about the Gcc mailing list