On Wed, Feb 18, 2026, at 12:27 AM, Emily Ammundsen wrote:
> The warning for STDC_HEADERS seems to get inserted directly into the 
> `configure` script, namely the following text without any quoting:
>
> The preprocessor macro 'STDC_HEADERS' is obsolete.
>    Except in unusual embedded environments, you can safely include all
>    C89 headers unconditionally.)# Autoupdate added the next two lines to 
> ensure that your configure

I tried to reproduce this problem and could not. When I run autoconf on
a simple configure.ac that uses one of the two macros that trigger the
warning above, like this

    AC_INIT([demo], [1.0])
    AC_HEADER_STDC
    AC_OUTPUT

or like this

    AC_INIT([demo], [1.0])
    AC_STDC_HEADERS
    AC_OUTPUT

the resulting configure script does not have the above message embedded
in it at all, and it's syntactically well formed.  Autoconf does print a
warning message:

configure.ac:2: warning: The macro 'AC_HEADER_STDC' is obsolete.
configure.ac:2: You should run autoupdate.
../lib/autoconf/headers.m4:664: AC_HEADER_STDC is expanded from...
configure.ac:2: the top level

If I then run autoupdate as suggested, what I get is this (same in both cases):

    AC_INIT([demo],[1.0])
    m4_warn([obsolete],
    [The preprocessor macro 'STDC_HEADERS' is obsolete.
      Except in unusual embedded environments, you can safely include all
      C89 headers unconditionally.])dnl
    # Autoupdate added the next two lines to ensure that your configure
    # script's behavior did not change.  They are probably safe to remove.
    AC_CHECK_INCLUDES_DEFAULT
    AC_PROG_EGREP

    AC_OUTPUT

Running autoconf on _this_ prints the warning message about STDC_HEADERS
but the resulting configure script, again, doesn't embed the warning message
and it runs fine.

...
> I ran `autoreconf -f -i` on a very old code base from around 2003

Ok, so that *probably* means it's being sloppy about M4 quotation and that's
*probably* the problem.  M4 quotation errors can easily cause bizarre syntax
errors like this in the generated configure script, and, unfortunately,
autoupdate cannot correct those errors.  I advise you to read through all
the subsections of
https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.72/html_node/M4-Quotation.html
(it says "autoconf users can skip this" at the top but that's wrong)
and then try to edit your old configure.ac (or possibly it's so old that
it's named configure.in?) to quote things more carefully, and see if that
makes the problem go away.

If you can show me your very old code base (just a URL for a source code
repository is fine), I may be able to give more specific advice.

> I considered trying my hand at writing a patch, but following the 
> instructions in README-hacking and executing ./bootstrap confusingly gives 
> me the error that an autoconf version 2.69 or higher is required, despite 
> my system version being 2.72 and README-hacking suggesting that I 
> shouldn't need autoconf installed already at all.

Indeed, you should not.  You need *automake* installed, but not autoconf.
This is what I see when I run `./bootstrap -v` in a fresh git checkout of 
autoconf:

  bootstrap: creating 
/home/zack/projects/gnu/autoconf/acboot.dFel9PwCCx/lib/Autom4te
  bootstrap: creating 
/home/zack/projects/gnu/autoconf/acboot.dFel9PwCCx/lib/autoconf
  bootstrap: creating 
/home/zack/projects/gnu/autoconf/acboot.dFel9PwCCx/lib/m4sugar
  bootstrap: creating 
/home/zack/projects/gnu/autoconf/acboot.dFel9PwCCx/bin/autoconf
  bootstrap: creating 
/home/zack/projects/gnu/autoconf/acboot.dFel9PwCCx/bin/autom4te
  bootstrap: creating 
/home/zack/projects/gnu/autoconf/acboot.dFel9PwCCx/lib/autom4te.cfg
  bootstrap: creating 
/home/zack/projects/gnu/autoconf/acboot.dFel9PwCCx/lib/autoconf_version.m4
  bootstrap: running aclocal -I m4 -Wall -Werror
  bootstrap: running 
/home/zack/projects/gnu/autoconf/acboot.dFel9PwCCx/bin/autoconf -Wall -Werror
  bootstrap: running automake --add-missing --copy -Wall -Werror
  configure.ac:37: installing 'build-aux/missing'
  Makefile.am: installing './INSTALL'
  doc/local.mk:27: installing 'build-aux/mdate-sh'
  Makefile.am:138:   'doc/local.mk' included from here

Can you please run that same command, `./bootstrap -v`, yourself, in a fresh 
git checkout
(right after cloning it) and send us the complete and unedited output?

zw

Reply via email to