|
@@ -0,0 +1,91 @@
|
|
|
+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
|
|
|
+
|