Re: Regression: git no longer works with musl libc's regex impl
- From
- Rich Felker <dalias@libc.org>
- Date
- Oct 6, 2016, 19:25 UTC
- Message-ID
- <20161006192500.GS19318@brightrain.aerifal.cx>
- In-Reply-To
- <20161006192339.3yddgxxk7jn7zfqx@sigill.intra.peff.net>
On Thu, Oct 06, 2016 at 03:23:40PM -0400, Jeff King wrote:
Show 26 quoted lines
> 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@gmx.de> 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