php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #77775 ext/intl/intl_convertcpp.cpp fails to buid
Submitted: 2019-03-21 00:12 UTC Modified: 2019-03-22 03:46 UTC
From: debohman at gmail dot com Assigned:
Status: Open Package: Compile Failure
PHP Version: 7.2.16 OS: macOS 10.12.6
Private report: No CVE-ID: None
Have you experienced this issue?
Rate the importance of this bug to you:

 [2019-03-21 00:12 UTC] debohman at gmail dot com
Description:
------------
Configuration:

./configure --mandir=/usr/local/share/man --enable-mbstring --enable-intl --enable-zip --enable-pcntl --enable-exif --with-libedit --with-zlib --with-bz2 --with-libzip=/usr/local --with-gd --with-webp-dir=/usr/local --with-openssl --with-curl --with-sqlite3=/usr/local --with-pdo-sqlite=/usr/local --with-mysqli --with-pdo-mysql --disable-phpdbg --enable-fpm --with-fpm-user=www --with-fpm-group=www

Using ICU 60.2

Diagnostics:

make
/bin/sh /tera/tera/debo/Projects/php/php-7.2.16/libtool --silent --preserve-dup-deps --mode=link cc -DPHP_ATOM_INC -I/tera/tera/debo/Projects/php/php-7.2.16/include -I/tera/tera/debo/Projects/php/php-7.2.16/main -I/tera/tera/debo/Projects/php/php-7.2.16 -I/tera/tera/debo/Projects/php/php-7.2.16/ext/date/lib -I/usr/local/include/libxml2 -I/usr/local/include -I/tera/tera/debo/Projects/php/php-7.2.16/ext/mbstring/oniguruma -I/tera/tera/debo/Projects/php/php-7.2.16/ext/mbstring/libmbfl -I/tera/tera/debo/Projects/php/php-7.2.16/ext/mbstring/libmbfl/mbfl -I/tera/tera/debo/Projects/php/php-7.2.16/TSRM -I/tera/tera/debo/Projects/php/php-7.2.16/Zend  -no-cpp-precomp  -I/usr/include -g -O2 -fvisibility=hidden -DZEND_SIGNALS    -o ext/opcache/opcache.la -export-dynamic -avoid-version -prefer-pic -module -rpath /tera/tera/debo/Projects/php/php-7.2.16/modules -L/usr/local/lib ext/opcache/ZendAccelerator.lo ext/opcache/zend_accelerator_blacklist.lo ext/opcache/zend_accelerator_debug.lo ext/opcache/zend_accelerator_hash.lo ext/opcache/zend_accelerator_module.lo ext/opcache/zend_persist.lo ext/opcache/zend_persist_calc.lo ext/opcache/zend_file_cache.lo ext/opcache/zend_shared_alloc.lo ext/opcache/zend_accelerator_util_funcs.lo ext/opcache/shared_alloc_shm.lo ext/opcache/shared_alloc_mmap.lo ext/opcache/shared_alloc_posix.lo ext/opcache/Optimizer/zend_optimizer.lo ext/opcache/Optimizer/pass1_5.lo ext/opcache/Optimizer/pass2.lo ext/opcache/Optimizer/pass3.lo ext/opcache/Optimizer/optimize_func_calls.lo ext/opcache/Optimizer/block_pass.lo ext/opcache/Optimizer/optimize_temp_vars_5.lo ext/opcache/Optimizer/nop_removal.lo ext/opcache/Optimizer/compact_literals.lo ext/opcache/Optimizer/zend_cfg.lo ext/opcache/Optimizer/zend_dfg.lo ext/opcache/Optimizer/dfa_pass.lo ext/opcache/Optimizer/zend_ssa.lo ext/opcache/Optimizer/zend_inference.lo ext/opcache/Optimizer/zend_func_info.lo ext/opcache/Optimizer/zend_call_graph.lo ext/opcache/Optimizer/sccp.lo ext/opcache/Optimizer/scdf.lo ext/opcache/Optimizer/dce.lo ext/opcache/Optimizer/compact_vars.lo ext/opcache/Optimizer/zend_dump.lo 
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: ext/opcache/.libs/opcache.a(shared_alloc_shm.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: ext/opcache/.libs/opcache.a(shared_alloc_shm.o) has no symbols
/bin/sh /tera/tera/debo/Projects/php/php-7.2.16/libtool --silent --preserve-dup-deps --mode=install cp ext/opcache/opcache.la /tera/tera/debo/Projects/php/php-7.2.16/modules
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: /tera/tera/debo/Projects/php/php-7.2.16/modules/opcache.a(shared_alloc_shm.o) has no symbols
/bin/sh /tera/tera/debo/Projects/php/php-7.2.16/libtool --silent --preserve-dup-deps --mode=compile g++ -I/usr/local/include -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -DU_USING_ICU_NAMESPACE=1 -Iext/intl/ -I/tera/tera/debo/Projects/php/php-7.2.16/ext/intl/ -DPHP_ATOM_INC -I/tera/tera/debo/Projects/php/php-7.2.16/include -I/tera/tera/debo/Projects/php/php-7.2.16/main -I/tera/tera/debo/Projects/php/php-7.2.16 -I/tera/tera/debo/Projects/php/php-7.2.16/ext/date/lib -I/usr/local/include/libxml2 -I/usr/local/include -I/tera/tera/debo/Projects/php/php-7.2.16/ext/mbstring/oniguruma -I/tera/tera/debo/Projects/php/php-7.2.16/ext/mbstring/libmbfl -I/tera/tera/debo/Projects/php/php-7.2.16/ext/mbstring/libmbfl/mbfl -I/tera/tera/debo/Projects/php/php-7.2.16/TSRM -I/tera/tera/debo/Projects/php/php-7.2.16/Zend  -no-cpp-precomp  -g -O2  -c /tera/tera/debo/Projects/php/php-7.2.16/ext/intl/intl_convertcpp.cpp -o ext/intl/intl_convertcpp.lo 
In file included from /tera/tera/debo/Projects/php/php-7.2.16/ext/intl/intl_convertcpp.cpp:21:
In file included from ext/intl/intl_convertcpp.h:26:
/usr/local/include/unicode/unistr.h:3014:7: error: delegating constructors are permitted only in C++11
      UnicodeString(ConstChar16Ptr(text)) {}
      ^~~~~~~~~~~~~
/usr/local/include/unicode/unistr.h:3076:7: error: delegating constructors are permitted only in C++11
      UnicodeString(ConstChar16Ptr(text), length) {}
      ^~~~~~~~~~~~~
/usr/local/include/unicode/unistr.h:3169:7: error: delegating constructors are permitted only in C++11
      UnicodeString(Char16Ptr(buffer), buffLength, buffCapacity) {}
      ^~~~~~~~~~~~~
3 errors generated.
make: *** [ext/intl/intl_convertcpp.lo] Error 1

Regression:

php-7.2.15 builds correctly on the same system with the same configuration.




Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2019-03-22 03:46 UTC] debohman at gmail dot com
I got it to build by adding --with-icu-dir=<blah> to the configure command. Nothing else changed on the system, and PHP 7.2.15 builds correctly without this configuration change.

I also upgraded the system to ICU 63.1, but I don't believe that was the issue.

I examined the Change Log, but could not identify a change that might have affected this in PHP 7.2.16.
 [2019-05-09 09:25 UTC] daniel at imhimmel dot net
FYI: The more recent versions of icu4c require c++11 as stated in "delegating constructors are permitted only in C++11".
Just add "-std=c++11" to the CXXFLAGS variable.
As in your case:
CXXFLAGS="-std=c++11" ./configure --mandir=/usr/local/share/man --enable-mbstring --enable-intl --enable-zip --enable-pcntl --enable-exif --with-libedit --with-zlib --with-bz2 --with-libzip=/usr/local --with-gd --with-webp-dir=/usr/local --with-openssl --with-curl --with-sqlite3=/usr/local --with-pdo-sqlite=/usr/local --with-mysqli --with-pdo-mysql --disable-phpdbg --enable-fpm --with-fpm-user=www --with-fpm-group=www
 
PHP Copyright © 2001-2019 The PHP Group
All rights reserved.
Last updated: Tue Jun 25 05:01:26 2019 UTC