On Thu, Oct 06, 2016 at 03:23:40PM -0400, Jeff King wrote: > On Thu, Oct 06, 2016 at 09:18:29PM +0200, Ævar Arnfjörð Bjarmason wrote: > > > On Tue, Oct 4, 2016 at 6:08 PM, Johannes Schindelin > > <Johannes.Schindelin@xxxxxx> wrote: > > > As to making NO_REGEX conditional on REG_STARTEND: you are talking about > > > apples and oranges here. NO_REGEX is a Makefile flag, while REG_STARTEND > > > is a C preprocessor macro. > > > > > > Unless you can convince the rest of the Git developers (you would not > > > convince me) to simulate autoconf by compiling an executable every time > > > `make` is run, to determine whether REG_STARTEND is defined, this is a > > > no-go. > > > > But just to clarify, does anyone have any objection to making our > > configure.ac compile a C program to check for this sort of thing? > > Because that seems like the easiest solution to this class of problem. > > No, I think that is the exact purpose of configure.ac and autoconf. > > It would be neat if we could auto-fallback during the build. Rich > suggested always compiling compat/regex.c, and just having it be a noop > at the preprocessor level. I'm not sure if that would work, though, > because we'd have to include the system "regex.h" to know if we have > REG_STARTEND, at which point it is potentially too late to compile our > own regex routines (we're potentially going to conflict with the system > declarations). If you have autoconf testing for REG_STARTEND at configure time then compat/regex.c can #include "config.h" and test for HAVE_REG_STARTEND rather than for REG_STARTEND, or something like that. Rich