From 214a76d045f906c1a8d687b7c7e7bc85c5b09906 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Sat, 10 Jun 2017 10:43:33 +0200 Subject: [PATCH] package/php: fix icu support Propagate icu reverse dependencies. Php lacks "-std=c++11", provided by icu-config, when compiling icu support leading to a build failure: /home/peko/autobuild/instance-1/output/host/usr/sh4-buildroot-linux-uclibc/sysroot/usr/include/unicode/umachine.h:347:13: error: 'char16_t' does not name a type typedef char16_t UChar; Fixes http://autobuild.buildroot.net/results/238/238d0e4bb205c0e7288903c6498e6c1787d86a1b/ Signed-off-by: Bernd Kuhls Signed-off-by: Thomas Petazzoni --- package/php/Config.ext | 9 +++++++-- package/php/php.mk | 4 +++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/package/php/Config.ext b/package/php/Config.ext index 43cc4b3289..bb6ada6a91 100644 --- a/package/php/Config.ext +++ b/package/php/Config.ext @@ -180,17 +180,22 @@ config BR2_PACKAGE_PHP_EXT_ICONV config BR2_PACKAGE_PHP_EXT_INTL bool "intl" + depends on BR2_HOST_GCC_AT_LEAST_4_8 # icu depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # icu depends on !BR2_BINFMT_FLAT # icu depends on BR2_TOOLCHAIN_HAS_THREADS # icu select BR2_PACKAGE_ICU help Internationalization support -comment "intl support needs a toolchain w/ C++, wchar, threads" +comment "intl support needs a toolchain w/ C++, wchar, threads, gcc >= 4.8, host gcc >= 4.8" depends on !BR2_BINFMT_FLAT - depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ + !BR2_TOOLCHAIN_HAS_THREADS || \ + !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || \ + !BR2_HOST_GCC_AT_LEAST_4_8 config BR2_PACKAGE_PHP_EXT_MBSTRING bool "mbstring" diff --git a/package/php/php.mk b/package/php/php.mk index ed12dd354a..fe531a4ae9 100644 --- a/package/php/php.mk +++ b/package/php/php.mk @@ -55,6 +55,7 @@ endif PHP_CONFIG_SCRIPTS = php-config PHP_CFLAGS = $(TARGET_CFLAGS) +PHP_CXXFLAGS = $(TARGET_CXXFLAGS) # The OPcache extension isn't cross-compile friendly # Throw some defines here to avoid patching heavily @@ -173,6 +174,7 @@ endif ifeq ($(BR2_PACKAGE_PHP_EXT_INTL),y) PHP_CONF_OPTS += --enable-intl --with-icu-dir=$(STAGING_DIR)/usr +PHP_CXXFLAGS += "`$(STAGING_DIR)/usr/bin/icu-config --cxxflags`" PHP_DEPENDENCIES += icu # The intl module is implemented in C++, but PHP fails to use # g++ as the compiler for the final link. As a workaround, @@ -343,6 +345,6 @@ endef PHP_POST_INSTALL_TARGET_HOOKS += PHP_INSTALL_FIXUP -PHP_CONF_ENV += CFLAGS="$(PHP_CFLAGS)" +PHP_CONF_ENV += CFLAGS="$(PHP_CFLAGS)" CXXFLAGS="$(PHP_CXXFLAGS)" $(eval $(autotools-package)) -- 2.30.2