Thread (1 message) 1 message, 1 author, 2016-06-15

Re: Git bug. "make [all]" does not use USE_LIBPCRE when "configure --with-libpcre" was previously run

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:58:25

Alexey Shumkin [off-list ref] writes:
quoted
From time to time, I use `git grep -P` to search text in sources using PCRE.
Today I was suprised when that command gave me the error
    "fatal: cannot use Perl-compatible regexes when not compiled with
    USE_LIBPCRE"

As far as I always use
    ./configure --with-libpcre 
    make all
to build my Cygwin version of Git that was a VERY sudden error for me.
(but this is not a Cygwin-specific error, I've reproduced it on my Linux
box).

I've found out that `make` "does not know" anymore about USE_LIBPCRE=YesPlease
even `./configure --with-libpcre` was run before it.
...
and `git bisect run` to find out where Git was broken.
That gave me:

---8<---
40bfbde9da5c6cbc85f49a755f27162dc966fd89 is the first bad commit
commit 40bfbde9da5c6cbc85f49a755f27162dc966fd89
Author: Stefano Lattarini [off-list ref]
Date:   Tue Sep 11 17:45:30 2012 +0200

    build: don't duplicate substitution of make variables
    
    Thanks to our 'GIT_CONF_SUBST' layer in configure.ac, a make variable 'VAR'
    can be defined to a value 'VAL' at ./configure runtime in our build system
    simply by using "GIT_CONF_SUBST([VAR], [VAL])" in configure.ac, rather than
    having both to call "AC_SUBST([VAR], [VAL])" in configure.ac and adding the
    'VAR = @VAR@' definition in config.mak.in.  Less duplication, less margin
    for error, less possibility of confusion.
    
    While at it, fix some formatting issues in configure.ac that unnecessarily
    obscured the code flow.
    
    Signed-off-by: Stefano Lattarini [off-list ref]
    Signed-off-by: Junio C Hamano [off-list ref]

:100644 100644 802d34223a2859ee1341d94ee722d7939b7276aa 69d48382fe69b8699eb350949fff04975db923f8 M      config.mak.in
:100644 100644 450bbe7f1020711b4af2ad6ea52d717651c30b0b da1f41f58871b2102a9ed5eaeff7df3c9623f4bd M      configure.ac
bisect run success

---8<---

I'm not a C programmer to fix that, so I ask you to.
Yikes and thanks for reporting.

This does not have anything to do with C, but is a breakage in our
autoconf script.  It appears that anything that is meant to be
appended at end via $config_appended_defs mechanism is missing from
the end result.

In fact, symbols whose explicit substitution the above patch
removes, e.g. CC_LD_DYNPATH, TCLTK_PATH, NEEDS_SSL_WITH_CRYPTO,
etc. are all missing.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help