Skip to content
  • Ævar Arnfjörð Bjarmason's avatar
    grep: un-break building with PCRE >= 8.32 without --enable-jit · fb95e2e3
    Ævar Arnfjörð Bjarmason authored and Junio C Hamano's avatar Junio C Hamano committed
    Amend my change earlier in this series ("grep: add support for the
    PCRE v1 JIT API", 2017-04-11) to un-break the build on PCRE v1
    versions later than 8.31 compiled without --enable-jit.
    
    As explained in that change and a later compatibility change in this
    series ("grep: un-break building with PCRE < 8.32", 2017-05-10) the
    pcre_jit_exec() function is a faster path to execute the JIT.
    
    Unfortunately there's no compatibility stub for that function compiled
    into the library if pcre_config(PCRE_CONFIG_JIT, &ret) would return 0,
    and no macro that can be used to check for it, so the only portable
    option to support builds without --enable-jit is via a new
    NO_LIBPCRE1_JIT=UnfortunatelyYes Makefile option[1].
    
    Another option would be to make the JIT opt-in via
    USE_LIBPCRE1_JIT=YesPlease, after all it's not a default option of
    PCRE v1.
    
    I think it makes more sense to make it opt-out since even though it's
    not a default option, most packagers of PCRE seem to turn it on by
    default, with the notable exception of the MinGW package.
    
    Make the MinGW platform work by default by changing the build defaults
    to turn on NO_LIBPCRE1_JIT=UnfortunatelyYes. It is the only platform
    that turns on USE_LIBPCRE=YesPlease by default, see commit
    df5218b4 ("config.mak.uname: support MSys2", 2016-01-13) for that
    change.
    
    1. "How do I support pcre1 JIT on all
       versions?"  (https://lists.exim.org/lurker/thread/20170601.103148.10253788.en.html)
    
    2. https://github.com/Alexpux/MINGW-packages/blob/master/mingw-w64-pcre/PKGBUILD
    
    
       (referenced from "Re: PCRE v2 compile error, was Re: What's cooking
       in git.git (May 2017, #01; Mon, 1)";
       <alpine.DEB.2.20.1705021756530.3480@virtualbox>)
    
    Signed-off-by: default avatarÆvar Arnfjörð Bjarmason <avarab@gmail.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    fb95e2e3