php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #77996 Build fails with --enable-intl
Submitted: 2019-05-09 09:47 UTC Modified: -
From: daniel at imhimmel dot net Assigned:
Status: Open Package: *Compile Issues
PHP Version: 7.3.5 OS: macOS Mojave (10.14.4)
Private report: No CVE-ID: None
View Add Comment Developer Edit
Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know!
Just going to say 'Me too!'? Don't clutter the database with that please — but make sure to vote on the bug!
Your email address:
MUST BE VALID
Solve the problem:
37 - 10 = ?
Subscribe to this entry?

 
 [2019-05-09 09:47 UTC] daniel at imhimmel dot net
Description:
------------
Linking libphp7.so fails with the following error:
Undefined symbols for architecture x86_64:
  "thread-local wrapper routine for _tsrm_ls_cache", referenced from:
      _zim_IntlDateFormatter___construct in dateformat_create.o
      _timezone_convert_to_datetimezone in timezone_class.o
      _zif_intlcal_from_date_time in calendar_methods.o
      _zif_intlcal_to_date_time in calendar_methods.o
      _php_intlgregcal_constructor_body(_zend_execute_data*, _zval_struct*, unsigned char) in gregoriancalendar_methods.o

As a workaround one may build php without intl extension (--disable-intl) and build intl as a separate extension, although I'm not sure if it might fail on some condition.
For now my tests using datefmt_create and IntlDateFormatter did work just fine.



Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2019-05-20 12:14 UTC] tmlmvp at gmail dot com
Hi, I had the same problem when i `build and make` php(7.3.5) with zts. And my macOS version is 10.12.6.

clang: warning: argument unused during compilation: '-pthread' [-Wunused-command-line-argument]
Undefined symbols for architecture x86_64:
  "thread-local wrapper routine for _tsrm_ls_cache", referenced from:
      _zim_IntlDateFormatter___construct in dateformat_create.o
      _timezone_convert_to_datetimezone in timezone_class.o
      _zif_intlcal_from_date_time in calendar_methods.o
      _zif_intlcal_to_date_time in calendar_methods.o
      _php_intlgregcal_constructor_body(_zend_execute_data*, _zval_struct*, unsigned char) in gregoriancalendar_methods.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [sapi/cli/php] Error 1
 [2019-09-05 11:53 UTC] chris at cretaforce dot gr
I try to create a static PHP 7.1 binary with intl support:

./configure --prefix=/home/username --enable-static --enable-cli --disable-cgi --enable-mysqlnd --with-mysql --with-mysqli --with-curl --with-zlib --enable-mbstring --enable-calendar --with-gd --with-bz2 --enable-sockets --enable-ftp --with-gettext --with-xmlrpc --with-xsl --with-pdo-mysql --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-mcrypt --enable-soap --with-openssl
./configure --prefix=/home/www/cretaftp/php --enable-static --enable-cli --disable-cgi --enable-mysqlnd --with-mysqli --with-curl --with-zlib --enable-mbstring --enable-calendar --with-gd --with-bz2 --enable-sockets --enable-ftp --with-gettext --with-xmlrpc --with-xsl --with-pdo-mysql --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-mcrypt --enable-soap --with-openssl --enable-intl --with-layout=GNU

But when I run:

make

I get this:

ld: error: undefined symbol: std::__throw_length_error(char const*)
>>> referenced by stl_vector.h:1756 (/usr/local/lib/gcc9/include/c++/bits/stl_vector.h:1756)
>>> ext/intl/msgformat/.libs/msgformat_helpers.o:(std::vector<icu::Formattable, std::allocator<icu::Formattable> >::_M_default_append(unsigned long))

ld: error: undefined symbol: std::__throw_length_error(char const*)
>>> referenced by stl_vector.h:1756 (/usr/local/lib/gcc9/include/c++/bits/stl_vector.h:1756)
>>> ext/intl/msgformat/.libs/msgformat_helpers.o:(std::vector<icu::UnicodeString, std::allocator<icu::UnicodeString> >::_M_default_append(unsigned long))
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error code 1

Stop.

If I remove --enable-intl from the ./configure command the issue doesn't exist.
 [2019-09-05 11:55 UTC] chris at cretaforce dot gr
I forgot to write that I use FreeBSD.
 
PHP Copyright © 2001-2019 The PHP Group
All rights reserved.
Last updated: Fri Nov 22 13:01:26 2019 UTC