From a9151b1a6abde8306c7b46ca52036b2dc9c1b76d Mon Sep 17 00:00:00 2001 From: Artem Panfilov Date: Tue, 16 Apr 2019 12:02:05 +0300 Subject: [PATCH] ext/pcre/config0.m4: add ac_cv_have_pcre2_jit variable The HAVE_PCRE_JIT_SUPPORT check uses AC_RUN_IFELSE, which is not available when cross-compiling. As a fallback, JIT support is enabled based on CPU architecture. However, this may be wrong, e.g. when the JIT the feature was not enabled in the pcre2 build. Add a cache variable for the PCRE JIT feature to make it possible to override the check. Backported from: 12ee246ae45889004fc2c099c04cfff1ce6e8848 Signed-off-by: Artem Panfilov --- ext/pcre/config0.m4 | 56 +++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/ext/pcre/config0.m4 b/ext/pcre/config0.m4 index b9542f0113..f964429431 100644 --- a/ext/pcre/config0.m4 +++ b/ext/pcre/config0.m4 @@ -53,35 +53,37 @@ PHP_ARG_WITH(pcre-jit,,[ --with-pcre-jit Enable PCRE JIT functionality AC_DEFINE(HAVE_PCRE, 1, [ ]) if test "$PHP_PCRE_JIT" != "no"; then - AC_MSG_CHECKING([for JIT support in PCRE2]) + AC_CACHE_CHECK([for JIT support in PCRE2], ac_cv_have_pcre2_jit, [ AC_RUN_IFELSE([ - AC_LANG_SOURCE([[ - #include - #include - int main(void) { - uint32_t have_jit; - pcre2_config_8(PCRE2_CONFIG_JIT, &have_jit); - return !have_jit; - } - ]])], [ - AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE_PCRE_JIT_SUPPORT, 1, []) - ], - [ - AC_MSG_RESULT([no]) - ], - [ - AC_CANONICAL_HOST - case $host_cpu in - arm*|i[34567]86|x86_64|mips*|powerpc*|sparc) - AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE_PCRE_JIT_SUPPORT, 1, []) - ;; - *) - AC_MSG_RESULT([no]) - ;; - esac + AC_LANG_SOURCE([[ + #include + #include + int main(void) { + uint32_t have_jit; + pcre2_config_8(PCRE2_CONFIG_JIT, &have_jit); + return !have_jit; + } + ]])], [ + ac_cv_have_pcre2_jit=yes + ], + [ + ac_cv_have_pcre2_jit=no + ], + [ + AC_CANONICAL_HOST + case $host_cpu in + arm*|i[34567]86|x86_64|mips*|powerpc*|sparc) + ac_cv_have_pcre2_jit=yes + ;; + *) + ac_cv_have_pcre2_jit=no + ;; + esac + ]) ]) + if test $ac_cv_have_pcre2_jit = yes; then + AC_DEFINE(HAVE_PCRE_JIT_SUPPORT, 1, []) + fi fi PHP_NEW_EXTENSION(pcre, php_pcre.c, no,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) -- 2.17.1