Browse Source

php: fix how PCRE JIT is disabled

When the internal PCRE library of PHP is used, it tries to use a JIT
engine, which is only available on some architectures.

However, the mechanism used to disable JIT has changed in recent PHP
versions, and it now has a proper --without-pcre-jit option. Switch
over to that to properly disable JIT on unsupported platforms.

It has been tested to fix the build of PHP on ARC and Microblaze.

Fixes:

  http://autobuild.buildroot.net/results/e1359fcad7bc57e3c5a7ecc37abaa2cf6a6a9ffa/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
(cherry picked from commit 9850612ea5e9fc9c377d11ec9c2930bfd812754a)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Thomas Petazzoni 7 years ago
parent
commit
50f01475aa
1 changed files with 4 additions and 6 deletions
  1. 4 6
      package/php/php.mk

+ 4 - 6
package/php/php.mk

@@ -228,10 +228,6 @@ ifneq ($(BR2_PACKAGE_PHP_EXT_MYSQLI)$(BR2_PACKAGE_PHP_EXT_PDO_MYSQL),)
 PHP_CONF_OPTS += --with-mysql-sock=$(MYSQL_SOCKET)
 PHP_CONF_OPTS += --with-mysql-sock=$(MYSQL_SOCKET)
 endif
 endif
 
 
-define PHP_DISABLE_PCRE_JIT
-	$(SED) '/^#define SUPPORT_JIT/d' $(@D)/ext/pcre/pcrelib/config.h
-endef
-
 define PHP_DISABLE_VALGRIND
 define PHP_DISABLE_VALGRIND
 	$(SED) '/^#define HAVE_VALGRIND/d' $(@D)/main/php_config.h
 	$(SED) '/^#define HAVE_VALGRIND/d' $(@D)/main/php_config.h
 endef
 endef
@@ -249,8 +245,10 @@ ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),)
 PHP_CFLAGS += -DSLJIT_SINGLE_THREADED=1
 PHP_CFLAGS += -DSLJIT_SINGLE_THREADED=1
 endif
 endif
 # check ext/pcre/pcrelib/sljit/sljitConfigInternal.h for supported archs
 # check ext/pcre/pcrelib/sljit/sljitConfigInternal.h for supported archs
-ifeq ($(BR2_i386)$(BR2_x86_64)$(BR2_arm)$(BR2_armeb)$(BR2_aarch64)$(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el)$(BR2_powerpc)$(BR2_sparc),)
-PHP_POST_CONFIGURE_HOOKS += PHP_DISABLE_PCRE_JIT
+ifeq ($(BR2_i386)$(BR2_x86_64)$(BR2_arm)$(BR2_armeb)$(BR2_aarch64)$(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el)$(BR2_powerpc)$(BR2_sparc),y)
+PHP_CONF_OPTS += --with-pcre-jit
+else
+PHP_CONF_OPTS += --without-pcre-jit
 endif
 endif
 endif
 endif