Hi Zack,

    *automake* can exit with code 63 under
    some circumstances, but it really looks like aclocal never will.

Agreed. I searched for "63" in automake distributions back to 1.11.3, as
well as the current sources, and no trace of any 63's in aclocal, only
in automake. Thus I suspect that the autoconf test meant to invoke
automake, not aclocal?

    Does anyone remember what situation this might have been trying to detect?

"Version mismatch". Of exactly what kind, I don't know :).

The change was made in automake in 2003, according to old/ChangeLog.03.
BTW, I don't see a way that Channels.pm (which aclocal.in uses as of
this change, apparently) exits with code 63, either.

Here are the ChangeLog and NEWS entries. --hope this helps, karl.


2003-09-06  Alexandre Duret-Lutz  <a...@gnu.org>

        * lib/Automake/XFile.pm: Update to use ChannelDefs.
        (close): Call Automake::FileUtils::handle_exec_errors on errors.
        * automake.in (scan_autoconf_files): Exit with $?=63 on version
        mismatch.
        (scan_autoconf_traces): Likewise.  Close the autoconf pipe to
        capture abnormal exits.
        * aclocal.in ($exit_status): Remove, and use Channels.pm's $exit_code
        instead.
        (trace_used_macros): Close the autom4te pipe to capture abnormal exits.
        * lib/missing: When a tool has run and exited with $?=63, emulate
        it.  Adjust the diagnostic and pretend the tool is tool old in this
        case.  Use an emacs-updated "scriptversion" variable.
        * configure.in: Output tests/aclocal-${APIVERSION} and
        tests/automake-${APIVERSION}.
        * tests/aclocal.in, tests/automake.in,
        tests/missing.test, tests/missing2.test: New files.
        * tests/defs.in (AUTOMAKE, ACLOCAL, PATH): Define
        to use tests/aclocal-$APIVERSION and tests/automake-$APIVERSION.
        * tests/dup3.test: Remove. alocal9.test, acloca10.test, and others are
        already testing for this.
        * tests/depacl2.test, tests/dup2.test, tests/order.test: Fix
        configure.in so that aclocal works.
        * tests/defun.test: Quote the AC_DEFUN body.
        * tests/Makefile.am (TESTS): Add missing.test and missing2.test,
        and remove dup3.test.
        (check_SCRIPTS): Add aclocal and automake.

New in 1.8:
..
  - Automake will exit with $? = 63 on version mismatch.  (So does
    Autoconf 2.58)  missing knows this, and in this case it will
    emulate the tools as if they were absent.  Because older versions
    of Automake and Autoconf did not use this exit code, this change
    will only be useful in projects generated with future versions of
    these tools.


Reply via email to