git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Alexey Shumkin <alex.crezoff@gmail.com>
Date
Aug 14, 2013, 12:48 UTC
Message-ID
<20130814124849.GA8234@ashu.dyn1.rarus.ru>
Hello, Stefan!
I'll begin from afar.
>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. But I do remember that it worked in some versions before (currently I use latest - v1.8.3.4).

So, I've got armed with the following test script:

---8<--- #!/bin/sh

set -e
./configure --with-libpcre
make
set +e
./bin-wrappers/git grep -qIP das+
# if "cannot use Perl-compatible regexes" error occurs
# then Git exits with an error code 128 (but `git bisect run` fails to
# expect this exit code).
if test $? -eq 128
then
    exit 1
fi
---8<---

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 <stefano.lattarini@gmail.com>
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 <stefano.lattarini@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>

: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.
-- 
Alexey Shumkin
Next: Junio C Hamano
Message 1 of 4 in “Git bug. "make [all]" does not use USE_LIBPCRE when "configure --with-libpcre" was previously run”
  1. Alexey ShumkinAug 14, 2013
  2. Junio C HamanoAug 14, 2013
  3. Junio C HamanoAug 14, 2013
  4. Alexey ShumkinAug 15, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.