Commit 02816d60 authored by Nick Mathewson's avatar Nick Mathewson 🌉
Browse files

Try making our configure.ac script build with AC 2.70.

In versions <=2.69, according to the autoconf docs, AC_PROG_CC_C99
is needed with some compilers, if they require extra arguments to
build C99 programs.  In versions >=2.70, AC_PROG_CC checks for these
compilers automatically, and so the AC_PROG_CC_C99 macro is
obsolete.

So, what can you do if you want your script to work right with both
autoconf versions?  IIUC, neither including AC_PROG_CC_C99 macro nor
leaving it out will give you the right behavior with both versions.
It looks like you need to look at the autoconf version explicitly.

(Now, the autoconf manual implies that it's "against autoconf
philosophy" to look at the autoconf version rather than trying the
behavior to see if it works, but they don't actually tell you how to
detect recoverably at autoconf-time whether a macro is obsolete or
not, and I can't find a way to do that.)

So, is it safe to use m4_version_prereq, like I do here?  It isn't
listed in the autoconf 2.63 manual (which is the oldest version we
support).  But a mailing list message [1] (which added the
documentation back in 2008) implies that m4_version_prereq has been
there since "at least back to autoconf 2.59".

https://lists.gnu.org/archive/html/autoconf-patches/2008-12/msg00025.html

So I think this will work.

I am basing this patch against Tor 0.3.5 since, if autoconf 2.70
becomes widespread before 0.3.5 is unsupported, we might need this
patch to continue 0.3.5 development.  But I don't think we should
backport farther than 0.4.5 until/unless that actually happens.

This is part of a fix for #40355.
parent 3271c0bd
o Minor features (compilation):
- Make the autoconf script build correctly with autoconf versions 2.70
and later. Closes part of ticket 40335.
...@@ -292,7 +292,11 @@ AC_PATH_PROGS([A2X], [a2x a2x.py], none) ...@@ -292,7 +292,11 @@ AC_PATH_PROGS([A2X], [a2x a2x.py], none)
AM_CONDITIONAL(USE_ASCIIDOC, test "x$asciidoc" = "xtrue") AM_CONDITIONAL(USE_ASCIIDOC, test "x$asciidoc" = "xtrue")
AM_PROG_CC_C_O AM_PROG_CC_C_O
AC_PROG_CC_C99
dnl Before autoconf 2.70, AC_PROG_CC_C99 is supposedly necessary for some
dnl compilers if you wan't C99 support. Starting with 2.70, it is obsolete and
dnl forbidden.
m4_version_prereq([2.70], [:], [AC_PROG_CC_C99])
AC_ARG_VAR([PYTHON], [path to Python binary]) AC_ARG_VAR([PYTHON], [path to Python binary])
AC_CHECK_PROGS(PYTHON, [ \ AC_CHECK_PROGS(PYTHON, [ \
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment