bug-autoconf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Bug#373953: ruby1.9: FTBFS: Error in ext/bigdecimal Makefile


From: Ralf Wildenhues
Subject: Re: Bug#373953: ruby1.9: FTBFS: Error in ext/bigdecimal Makefile
Date: Sun, 25 Jun 2006 16:37:14 +0200
User-agent: Mutt/1.5.11+cvs20060403

Hello,

* Steinar H. Gunderson wrote on Sun, Jun 25, 2006 at 02:11:12PM CEST:
> On Fri, Jun 16, 2006 at 01:03:43PM -0400, Daniel Schepler wrote:
> >> Does the line 143 contain "|#_!!_#|"?
> > 
> > Yes, it does:
> > 
> > .cc.|#_!!_#|o:
> 
> For those interested in squashing this bug, it looks like some problem in the
> autoconf interaction.

Yes.

> ruby1.9 seems to subscribe to the non-recommended
> practice of automatically running autoconf at build time,

Moving away from this practice isn't going to fix this failure though --
see below.

> and at some point, either autoconf got buggy, or something changed;

Yes.  Autoconf changed the internal representation of its substitution
when it started to support newlines in substitutions (and thus needed
to employ some quoting _inside_ the config.status script).

> the part about '|#_!!_#|'
> originates from the configure script in AC_OUTPUT; it's supposed to be sed-ed
> out at some point, but for some reason, this doesn't happen.

It does happen for all files which are created with AC_CONFIG_FILES,
which, in this case, is only the toplevel Makefile.

> AFAICS, a simple solution would simply to be turning off the running of
> autoconf at build time, run autoconf from some older version and then simply
> include that in the diff.

Nope.  That simply won't fix things, because Autoconf will not back out
this new feature.

The problem is in the mkconfig.rb script in the toplevel directory of
ruby1.9-1.9.0+20060423: it tries to "parse" config.status and thus
extract the values of some substitutions.

This is extremely brittle, and fails as shown.  I can assure you it will
also fail again in the future, and it will fail with older Autoconf
versions for some of the values extracted.  The point is that the
contents of config.status are *really* internal details, undocumented,
and not in any way guaranteed to be stable.  Neither is the order or
some overrides of substitutions.  (For example, a future Autoconf
version may employ awk to do the substitutions, in which case the syntax
will change greatly.)

If you want to know the values of substituted variables, then simply use
a substituted file to extract them portably:

add AC_CONFIG_FILES([values.rb]) to configure.in, and create a file
values.rb.in with
  address@hidden@
  address@hidden@
  address@hidden@
  address@hidden@
  ...

As I don't know ruby syntax really, you will have to take care of the
proper quoting yourself.  And possibly some more changes, I don't quite
understand the mkconfig.rb script.

If you have any more questions to be able to fix this, don't hesitate to
ask; I'd be happy to help with the Autoconf related things.

Cheers,
Ralf




reply via email to

[Prev in Thread] Current Thread [Next in Thread]