php8: link PCRE2 JIT usage to actual library configuration
authorMichael Heimpold <[email protected]>
Mon, 21 Jul 2025 21:37:56 +0000 (23:37 +0200)
committerMichael Heimpold <[email protected]>
Sat, 9 Aug 2025 20:29:01 +0000 (22:29 +0200)
libpcre2's JIT support is controlled with a compile-time flag.
When PHP is compiled against it (external libpcre2 - not PHP's bundled
version) as in our use-case, then it tries to auto-detect whether
JIT support is enalbed or not - but this is done based on a guess
when cross-compiling.

So instead of guessing, we need to tell the actual OpenWrt configuration
of libpcre2 to PHP.

Signed-off-by: Michael Heimpold <[email protected]>
lang/php8/Makefile

index df269fc4a8e3eeb523e853ceb38331fa6b4028e1..a2da88716de13dd4687ce42d005d55baf3624add 100644 (file)
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=php
 PKG_VERSION:=8.4.10
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_MAINTAINER:=Michael Heimpold <[email protected]>
 PKG_LICENSE:=PHP-3.01
@@ -190,6 +190,7 @@ CONFIGURE_ARGS+= \
        \
        --without-valgrind \
        --with-external-pcre \
+       --$(if $(CONFIG_PCRE2_JIT_ENABLED),with,without)-pcre-jit \
        --with-zlib="$(STAGING_DIR)/usr"
 
 ifeq ($(CONFIG_LIBC_USE_GLIBC),y)
@@ -499,7 +500,7 @@ CONFIGURE_VARS+= \
        php_cv_cc_rpath="no" \
        ac_cv_php_xml2_config_path="$(STAGING_DIR)/host/bin/xml2-config" \
        ac_cv_u8t_decompose=yes \
-       ac_cv_have_pcre2_jit=no
+       php_cv_have_pcre2_jit=$(if $(CONFIG_PCRE2_JIT_ENABLED),yes,no)
 
 define Package/php8/conffiles
 /etc/php.ini