summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2018-03-28 18:00:28 +0200
committerAnatol Belski <ab@php.net>2018-03-28 18:01:44 +0200
commit710284cbc4a54cac0a9ec4ea29a7486e0d99a33b (patch)
tree35974499c556a3ebb7cff51253f395fb1fd97875
parentac4d9fd0557cefe7a833bf1b0e97078010789a95 (diff)
downloadphp-git-710284cbc4a54cac0a9ec4ea29a7486e0d99a33b.tar.gz
Fixed bug #76153 Intl compilation fails with icu4c 61.1
Additionally, ICU >= 59.1 requires C++11, so add the flags. Some refactoring is needed to comply with the latest recommended build options, such as automatic icu namespace addition.
-rw-r--r--acinclude.m43
-rw-r--r--ext/intl/config.m42
-rw-r--r--ext/intl/config.w322
3 files changed, 5 insertions, 2 deletions
diff --git a/acinclude.m4 b/acinclude.m4
index 0e6fb5de85..3881b2da93 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -2248,6 +2248,9 @@ AC_DEFUN([PHP_SETUP_ICU],[
ICU_LIBS=`$ICU_CONFIG --ldflags --ldflags-icuio`
PHP_EVAL_INCLINE($ICU_INCS)
PHP_EVAL_LIBLINE($ICU_LIBS, $1)
+
+ ICU_EXTRA_FLAGS=`$ICU_CONFIG --cxxflags`
+ ICU_EXTRA_FLAGS="$ICU_EXTRA_FLAGS -DU_USING_ICU_NAMESPACE=1"
fi
])
diff --git a/ext/intl/config.m4 b/ext/intl/config.m4
index ca2cd822f4..a496d8d70c 100644
--- a/ext/intl/config.m4
+++ b/ext/intl/config.m4
@@ -86,7 +86,7 @@ if test "$PHP_INTL" != "no"; then
breakiterator/codepointiterator_methods.cpp \
uchar/uchar.c \
idn/idn.c \
- $icu_spoof_src, $ext_shared,,$ICU_INCS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1,cxx)
+ $icu_spoof_src, $ext_shared,,$ICU_INCS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 $ICU_EXTRA_FLAGS,cxx)
PHP_ADD_BUILD_DIR($ext_builddir/collator)
PHP_ADD_BUILD_DIR($ext_builddir/converter)
PHP_ADD_BUILD_DIR($ext_builddir/common)
diff --git a/ext/intl/config.w32 b/ext/intl/config.w32
index 5b37d934bd..328288be3d 100644
--- a/ext/intl/config.w32
+++ b/ext/intl/config.w32
@@ -130,7 +130,7 @@ if (PHP_INTL != "no") {
ADD_FLAG("LIBS_INTL", "iculx.lib");
}
- ADD_FLAG("CFLAGS_INTL", "/EHsc");
+ ADD_FLAG("CFLAGS_INTL", "/EHsc /D U_USING_ICU_NAMESPACE=1");
AC_DEFINE("HAVE_INTL", 1, "Internationalization support enabled");
} else {
WARNING("intl not enabled; libraries and/or headers not found");