From cc46a4e6b5a413bab3e264c1dcaaf7052f54fbc4 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 17 Feb 2024 21:38:21 +0000 Subject: [PATCH] ext/intl: level up c++ runtime std for icu 74 and onwards. to align with what is required to build icu 74 itself. Close GH-14002 --- NEWS | 3 +++ ext/intl/config.m4 | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index bcff2820ded76..e5f8e3eba5ff3 100644 --- a/NEWS +++ b/NEWS @@ -18,6 +18,9 @@ PHP NEWS . Fixed bug GH-13563 (Setting bool values via env in FPM config fails). (Jakub Zelenka) +- Intl: + . Fixed build for icu 74 and onwards. (dunglas) + - MySQLnd: . Fix shift out of bounds on 32-bit non-fast-path platforms. (nielsdos) diff --git a/ext/intl/config.m4 b/ext/intl/config.m4 index dd687bcd97de3..48f5147ca7bbf 100644 --- a/ext/intl/config.m4 +++ b/ext/intl/config.m4 @@ -80,7 +80,16 @@ if test "$PHP_INTL" != "no"; then breakiterator/codepointiterator_methods.cpp" PHP_REQUIRE_CXX() - PHP_CXX_COMPILE_STDCXX(11, mandatory, PHP_INTL_STDCXX) + + AC_MSG_CHECKING([if intl requires -std=gnu++17]) + AS_IF([test "$PKG_CONFIG icu-uc --atleast-version=74"],[ + AC_MSG_RESULT([yes]) + PHP_CXX_COMPILE_STDCXX(17, mandatory, PHP_INTL_STDCXX) + ],[ + AC_MSG_RESULT([no]) + PHP_CXX_COMPILE_STDCXX(11, mandatory, PHP_INTL_STDCXX) + ]) + PHP_INTL_CXX_FLAGS="$INTL_COMMON_FLAGS $PHP_INTL_STDCXX $ICU_CXXFLAGS" case $host_alias in *cygwin*) PHP_INTL_CXX_FLAGS="$PHP_INTL_CXX_FLAGS -D_POSIX_C_SOURCE=200809L"