diff options
Diffstat (limited to 'package/php')
-rw-r--r-- | package/php/0008-ext-sockets-make-AI_IDN-usage-optional.patch | 55 | ||||
-rw-r--r-- | package/php/0009-main-php_ini.c-build-empty-php_load_zend_extension_c.patch | 62 | ||||
-rw-r--r-- | package/php/Config.in | 4 | ||||
-rw-r--r-- | package/php/php.hash | 2 | ||||
-rw-r--r-- | package/php/php.mk | 7 |
5 files changed, 128 insertions, 2 deletions
diff --git a/package/php/0008-ext-sockets-make-AI_IDN-usage-optional.patch b/package/php/0008-ext-sockets-make-AI_IDN-usage-optional.patch new file mode 100644 index 0000000000..7ab086865e --- /dev/null +++ b/package/php/0008-ext-sockets-make-AI_IDN-usage-optional.patch @@ -0,0 +1,55 @@ +From 923cab3a5ee112d3de44b5571e73402f1fa3d619 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni <thomas.petazzoni@bootlin.com> +Date: Mon, 26 Feb 2018 19:06:40 +0100 +Subject: [PATCH] ext/sockets: make AI_IDN usage optional + +AI_IDN is not supported by all C libraries (uClibc, musl), so make it +optional, like AI_ALL. + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> +Upstream-status: https://github.com/php/php-src/pull/3160 +--- + ext/sockets/config.m4 | 13 +++++++++++++ + ext/sockets/sockets.c | 2 +- + 2 files changed, 14 insertions(+), 1 deletion(-) + +diff --git a/ext/sockets/config.m4 b/ext/sockets/config.m4 +index fe7d22a10a..2bf6a2bd11 100644 +--- a/ext/sockets/config.m4 ++++ b/ext/sockets/config.m4 +@@ -69,6 +69,19 @@ if test "$PHP_SOCKETS" != "no"; then + AC_DEFINE(HAVE_AI_ALL,1,[Whether you have AI_ALL]) + fi + ++ dnl Check for AI_IDN flag ++ AC_CACHE_CHECK([if getaddrinfo supports AI_IDN],[ac_cv_gai_ai_idn], ++ [ ++ AC_TRY_COMPILE([ ++#include <netdb.h> ++ ], [int flag = AI_IDN;], ++ ac_cv_gai_ai_idn=yes, ac_cv_gai_ai_idn=no) ++ ]) ++ ++ if test "$ac_cv_gai_ai_idn" = yes; then ++ AC_DEFINE(HAVE_AI_IDN,1,[Whether you have AI_IDN]) ++ fi ++ + PHP_NEW_EXTENSION([sockets], [sockets.c multicast.c conversions.c sockaddr_conv.c sendrecvmsg.c], [$ext_shared],, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) + PHP_INSTALL_HEADERS([ext/sockets/], [php_sockets.h]) + fi +diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c +index 6db56c2816..ee9651ce09 100644 +--- a/ext/sockets/sockets.c ++++ b/ext/sockets/sockets.c +@@ -796,7 +796,7 @@ static PHP_MINIT_FUNCTION(sockets) + REGISTER_LONG_CONSTANT("AI_ALL", AI_ALL, CONST_CS | CONST_PERSISTENT); + #endif + REGISTER_LONG_CONSTANT("AI_ADDRCONFIG", AI_ADDRCONFIG, CONST_CS | CONST_PERSISTENT); +-#ifdef __USE_GNU ++#if defined(HAVE_AI_IDN) && defined(__USE_GNU) + REGISTER_LONG_CONSTANT("AI_IDN", AI_IDN, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("AI_CANONIDN", AI_CANONIDN, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("AI_IDN_ALLOW_UNASSIGNED", AI_IDN_ALLOW_UNASSIGNED, CONST_CS | CONST_PERSISTENT); +-- +2.14.3 + diff --git a/package/php/0009-main-php_ini.c-build-empty-php_load_zend_extension_c.patch b/package/php/0009-main-php_ini.c-build-empty-php_load_zend_extension_c.patch new file mode 100644 index 0000000000..bc5149d1d6 --- /dev/null +++ b/package/php/0009-main-php_ini.c-build-empty-php_load_zend_extension_c.patch @@ -0,0 +1,62 @@ +From b7bbdfbcb0869b5c068143d4e27bab9eac4ae72b Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni <thomas.petazzoni@bootlin.com> +Date: Mon, 26 Feb 2018 19:30:55 +0100 +Subject: [PATCH] main/php_ini.c: build empty php_load_zend_extension_cb() when + !HAVE_LIBDL + +Commit 0782a7fc6314c8bd3cbfd57f12d0479bf9cc8dc7 ("Fixed bug #74866 +extension_dir = "./ext" now use current directory for base") modified +the php_load_zend_extension_cb() function to use php_load_shlib(), and +pass a handle to the newly introduced zend_load_extension_handle() +function instead of passing the extension path to +zend_load_extension(). + +While doing so, it introduced a call to php_load_shlib() from code +that is built even when HAVE_LIBDL is not defined. However, +php_load_shlib() is not implemented when HAVE_LIBDL is not defined, +for obvious reasons. + +It turns out that zend_load_extension_handle() anyway doesn't do +anything when ZEND_EXTENSIONS_SUPPORT is defined to 0, and +ZEND_EXTENSIONS_SUPPORT is not defined when HAVE_LIBDL is not defined +(Zend/zend_portability.h). + +Fixes the following build failure when building on a system that +doesn't have libdl: + +main/php_ini.o: In function `php_load_zend_extension_cb': +php_ini.c:(.text+0x478): undefined reference to `php_load_shlib' +php_ini.c:(.text+0x4b0): undefined reference to `php_load_shlib' +collect2: error: ld returned 1 exit status + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> +Upstream-status: https://github.com/php/php-src/pull/3161 +--- + main/php_ini.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/main/php_ini.c b/main/php_ini.c +index ba58eb1180..fca263e5f0 100644 +--- a/main/php_ini.c ++++ b/main/php_ini.c +@@ -350,6 +350,7 @@ static void php_load_php_extension_cb(void *arg) + + /* {{{ php_load_zend_extension_cb + */ ++#ifdef HAVE_LIBDL + static void php_load_zend_extension_cb(void *arg) + { + char *filename = *((char **) arg); +@@ -409,6 +410,9 @@ static void php_load_zend_extension_cb(void *arg) + efree(libpath); + } + } ++#else ++static void php_load_zend_extension_cb(void *arg) { } ++#endif + /* }}} */ + + /* {{{ php_init_config +-- +2.14.3 + diff --git a/package/php/Config.in b/package/php/Config.in index 0fb80063af..11514e04b1 100644 --- a/package/php/Config.in +++ b/package/php/Config.in @@ -6,6 +6,10 @@ config BR2_PACKAGE_PHP !BR2_PACKAGE_PHP_SAPI_FPM && \ BR2_USE_MMU select BR2_PACKAGE_PHP_SAPI_CLI if !BR2_USE_MMU + # PHP uses -export-dynamic, which breaks with elf2flt with a + # message like "ld.real: section .junk LMA [...,...] overlaps + # section .text LMA [...,...]" + depends on !BR2_BINFMT_FLAT help PHP is a widely-used general-purpose scripting language that is especially suited for Web development diff --git a/package/php/php.hash b/package/php/php.hash index fdb4446d2b..34230df874 100644 --- a/package/php/php.hash +++ b/package/php/php.hash @@ -1,5 +1,5 @@ # From http://php.net/downloads.php -sha256 47d7607d38a1d565fc43ea942c92229a7cd165f156737f210937e375b243cb11 php-7.2.2.tar.xz +sha256 b3a94f1b562f413c0b96f54bc309706d83b29ac65d9b172bc7ed9fb40a5e651f php-7.2.3.tar.xz # License file sha256 00e567a8d50359d93ee1f9afdd9511277660c1e70a0cbf3229f84403aa9aebb1 LICENSE diff --git a/package/php/php.mk b/package/php/php.mk index a4481c45c7..dcb89b03d3 100644 --- a/package/php/php.mk +++ b/package/php/php.mk @@ -4,7 +4,7 @@ # ################################################################################ -PHP_VERSION = 7.2.2 +PHP_VERSION = 7.2.3 PHP_SITE = http://www.php.net/distributions PHP_SOURCE = php-$(PHP_VERSION).tar.xz PHP_INSTALL_STAGING = YES @@ -232,6 +232,11 @@ define PHP_DISABLE_PCRE_JIT $(SED) '/^#define SUPPORT_JIT/d' $(@D)/ext/pcre/pcrelib/config.h endef +define PHP_DISABLE_VALGRIND + $(SED) '/^#define HAVE_VALGRIND/d' $(@D)/main/php_config.h +endef +PHP_POST_CONFIGURE_HOOKS += PHP_DISABLE_VALGRIND + ### Use external PCRE if it's available ifeq ($(BR2_PACKAGE_PCRE),y) PHP_CONF_OPTS += --with-pcre-regex=$(STAGING_DIR)/usr |