| From a9151b1a6abde8306c7b46ca52036b2dc9c1b76d Mon Sep 17 00:00:00 2001 |
| From: Artem Panfilov <panfilov.artyom@gmail.com> |
| 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 <panfilov.artyom@gmail.com> |
| --- |
| 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 <pcre2.h> |
| - #include <stdlib.h> |
| - 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 <pcre2.h> |
| + #include <stdlib.h> |
| + 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 |
| |