bug-autoconf
[Top][All Lists]
Advanced

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

Re: Side effect ? autogen can not be built with autoconf-2.69d on Solari


From: Zack Weinberg
Subject: Re: Side effect ? autogen can not be built with autoconf-2.69d on Solaris 11.3 x86/x64.
Date: Mon, 30 Nov 2020 15:53:40 -0500

On Sun, Nov 29, 2020 at 2:02 PM Paul Eggert <eggert@cs.ucla.edu> wrote:
>
> On 11/28/20 11:39 PM, kabu_ha_genbutsu@yahoo.co.jp wrote:
> > Hello,
> > Autogen-5.18.16 can not be built with autoconf-2.69d.
>
> I don't observe this problem when building autogen 5.18.16. It doesn't
> even run 'autoconf' when configuring (which is as things should be).

I can reproduce the problem if I regenerate autogen 5.8.16's configure
script with autoreconf+autoconf from Autoconf git trunk.

The error message is coming from this code in config/libopts.m4:

  for f in sys_types sys_param sys_stat string errno stdlib memory setjmp
  do eval as_ac_var=\${ac_cv_header_${f}_h}
     test "X${as_ac_var}" = Xyes || {
       ]AC_MSG_ERROR([you must have ${f}.h on your system])[
     }
  done

At no point prior to this has AC_CHECK_HEADERS([stdlib.h]) been
invoked.  This is due to an *intentional* change in 2.70: quoting
NEWS:

*** AC_INCLUDES_DEFAULT assumes an ISO C90 compliant C implementation.

  Specifically, it assumes that the ISO C90 headers <stdlib.h> and
  <string.h> are available, without checking for them, and does not
  include the pre-standard header <memory.h> at all.  If the POSIX
  header <strings.h> exists, it will be included, without testing
  whether it is safe to include both <string.h> and <strings.h> in the
  same source file.

  For compatibility’s sake, the C preprocessor macros STDC_HEADERS,
  HAVE_STDLIB_H, and HAVE_STRING_H are defined unconditionally.
  These preprocessor macros should be considered obsolescent.

  Future releases of Autoconf may reduce the set of headers checked
  for by AC_INCLUDES_DEFAULT.

We could expand the "for compatibility's sake" to set the cache
variables ac_cv_header_{stdlib,string}_h (without actually bothering
to check) but I'm not sure that's a good idea -- that would prevent
people with a genuine need to maintain compatibility with K&R
environments from doing AC_CHECK_HEADER([stdlib.h]) themselves.  What
do you think, Paul?

(I was not able to find an active mailing list for autogen, but they
should indeed be advised that this configure script is full of dodgy
constructs and checks that are unlikely to be needed anymore.  I do
not have time to debug it any more myself.)

zw



reply via email to

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