Re: Regression: git no longer works with musl libc's regex impl
- From
Jakub Narębski <jnareb@gmail.com>
- Date
- Oct 7, 2016, 11:30 UTC
- Message-ID
- <4615e3c4-9793-3dce-c500-9091a9056379@gmail.com>
- In-Reply-To
- <20336ac7-a494-d725-f928-834b1b3194fe@ramsayjones.plus.com>
W dniu 07.10.2016 o 00:42, Ramsay Jones pisze:
> On 06/10/16 20:18, Ævar Arnfjörð Bjarmason wrote:
[...]
Show 15 quoted lines
>> 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.
>
> Err, you do know that we already do that, right?
>
> [see commit a1e3b669 ("autoconf: don't use platform regex if it lacks REG_STARTEND", 17-08-2010)]
>
> In fact, if you run the auto tools on cygwin, you get a different setting
> for NO_REGEX than via config.mak.uname. Which is why I don't run configure
> on cygwin. :-D
>
> [The issue is exposed by t7008-grep-binary.sh, where the cygwin native
> regex library matches '.' in a pattern with the NUL character. ie the
> test_expect_failure test passes.]Huh. So we have NO_REGEX support in ./configure, and people using Git on untypical architectures and systems *can* make use of it.
It was just described wrongly, so in turn to have the more neutral description, the same as in Makefile, let's do this:
-------- >8 ---------- >8 ------------- >8 ---------- >8 ---------- Subject: [PATCH] configure.ac: Improve description of NO_REGEX test
The commit 2f8952250a changed description of NO_REGEX build config variable to be more neutral, and actually say that it is about support for REG_STARTEND. Change description in configure.ac to be the same.
Change also the test message and variable name to match. The test just checks that REG_STARTEND is #defined.
Issue-found-by: Ramsay Jones <ramsay@ramsayjones.plus.com> Signed-off-by: Jakub Narębski <jnareb@gmail.com> --- configure.ac | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/configure.ac b/configure.ac index aa9c91d..7f39fd0 100644 --- a/configure.ac +++ b/configure.ac @@ -835,9 +835,10 @@ AC_CHECK_TYPE([struct addrinfo],[ ]) GIT_CONF_SUBST([NO_IPV6]) # -# Define NO_REGEX if you have no or inferior regex support in your C library. -AC_CACHE_CHECK([whether the platform regex can handle null bytes], - [ac_cv_c_excellent_regex], [ +# Define NO_REGEX if your C library lacks regex support with REG_STARTEND +# feature. +AC_CACHE_CHECK([whether the platform regex supports REG_STARTEND], + [ac_cv_c_regex_with_reg_startend], [ AC_EGREP_CPP(yippeeyeswehaveit, AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT #include <regex.h> @@ -846,10 +847,10 @@ AC_EGREP_CPP(yippeeyeswehaveit, yippeeyeswehaveit #endif ]), - [ac_cv_c_excellent_regex=yes], - [ac_cv_c_excellent_regex=no]) + [ac_cv_c_regex_with_reg_startend=yes], + [ac_cv_c_regex_with_reg_startend=no]) ]) -if test $ac_cv_c_excellent_regex = yes; then +if test $ac_cv_c_regex_with_reg_startend = yes; then NO_REGEX= else NO_REGEX=YesPlease
-- 2.10.0