1. 07 Apr, 2021 1 commit
    • Nick Mathewson's avatar
      Try making our configure.ac script build with AC 2.70. · 02816d60
      Nick Mathewson authored
      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.
      02816d60