GNU bug report logs -
#8493
autoconf fails if env var U set
Previous Next
Reported by: Eric Blake <eblake <at> redhat.com>
Date: Wed, 13 Apr 2011 17:46:02 UTC
Severity: normal
Done: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#8493: autoconf fails if env var U set
which was filed against the automake package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 8493 <at> debbugs.gnu.org.
--
8493: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8493
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Me going through oldish backlogs ...]
On Thursday 14 April 2011, Paul Eggert wrote:
> On 04/13/2011 11:02 AM, Tom Lane wrote:
> > If the intended use is only for ansi2knr, I'd even argue that it
> > should be off by default ... how many people care about ansi2knr
> > anymore?
>
> Nobody. It would be fine to remove the ansi2knr stuff from Autoconf.
>
>
I agree. For what is worth, support for the ansi2knr stuff has been
deprecated in the automake `maint' branch, and removed altogether
in the `master' branch, so I'm closing this bug report (for what
concerns automake).
Regards,
Stefano
[Message part 3 (message/rfc822, inline)]
[Message part 4 (text/plain, inline)]
On 04/13/2011 11:31 AM, Tim Wallace wrote:
> This is a bug discovered when trying to build postgresql 9.0.3 on Redhat
> Enterprise Linux 5. If env var U is set, it fails, as pointed out by
> the Postgres maintainer. I guess it's autoconf 2.59, and I'm guessing
> you're past that now, so possibly it has already been fixed. Baffling
> bug, though.
It stems from the old days of ansi2knr, where automake would set $U when
translating source files into knr versions; but is relatively unused
these days.
> for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
> # 1. Remove the extension, and $U if already installed.
> ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
> ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
> # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
> # will be set to the directory where LIBOBJS objects are built.
> ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
> ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
The issue still exists in autoconf 2.68 (and autoconf.git); but the
rules are not using $U in the configure script (read those lines
closely, and you'll note that what is really happening is that they are
generating a literal '$U' for inclusion in the AC_SUBST of LIBOBJS and
LTLIBOBJS). So the real problem may be that automake is not prepared
for the case when $U is defined at make time, rather than on autoconf
for passing literal $U into the makefile in the first place during
AC_LIBOBJ.
Or maybe we do need to consider patching lib/autoconf/general.m4 to make
_AC_LIBOBJS_NORMALIZE only output $U into the makefile conditional on
whether ansi2knr is in use, rather than its current usage of doing it
for every package that used AC_LIBOBJ.
--
Eric Blake eblake <at> redhat.com +1-801-349-2682
Libvirt virtualization library http://libvirt.org
[signature.asc (application/pgp-signature, attachment)]
This bug report was last modified 13 years and 199 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.