Edit report at https://bugs.php.net/bug.php?id=63104&edit=1
ID: 63104
Updated by: bjori@php.net
Reported by: maduma at pt dot lu
Summary: php fail to build with --enable-intl
-Status: Analyzed
+Status: Open
Type: Bug
Package: Compile Failure
Operating System: Solaris 11
PHP Version: 5.4.7
-Assigned To: bjori
+Assigned To:
Block user comment: N
Private report: N
Previous Comments:
------------------------------------------------------------------------
[2012-09-20 12:21:33] johannes@php.net
The actual issue is that we're linking using the C compiler, not the C++ compiler. The later
would pull the correct C++ libs in.
What we have to do is
1) go through all SAPI config.m4's and modify their linker calls to either use CC or CXX
depending on i.e. $php_cxx_done
2) remove PHP_ADD_LIBRARY(stdc++) from AC_DEFUN([PHP_REQUIRE_CXX]
3) make sure none of our bundled libs has issues when linked with C++ standard libs (especially as
they might depend on a lib pulling a different C++ runtime in ...)
Then we're done. But step 3 is rather complicated. Better would be if libintl itself would pull
in the proper C++ runtime but we don't have control over that.
A work-around is to only do step 2 from that list and have the user build the intl extension shared.
In that case we already use the C++ compiler for linking the .so/.dynlib/...
Assigning to Hannes, who added the explicit linkage to libstdc++. Maye he has some thoughts or feels
brave enough to us C++ for linkage ;-)
------------------------------------------------------------------------
[2012-09-19 16:26:23] reeze@php.net
similar to https://bugs.php.net/bug.php?id=48795
but different platform.
------------------------------------------------------------------------
[2012-09-19 08:03:59] laruence@php.net
I can not reproduce it:
$php -m | grep intl
intl
$php -r 'proc_open("ls");'
PHP Warning: proc_open() expects at least 3 parameters, 1 given in Command line
code on line 1
------------------------------------------------------------------------
[2012-09-19 07:46:30] maduma at pt dot lu
Still have problems with intl extention. When i compile 5.4 with intl the proc_open() function is
not defined anymore
# --with-intl
/usr/php/5.4/bin/php -r 'proc_open();'
PHP Fatal error: Call to undefined function proc_open() in Command line code on line 1
# without intl
/usr/php/5.4/bin/php -r 'proc_open();'
PHP Warning: proc_open() expects at least 3 parameters, 0 given in Command line code on line 1
------------------------------------------------------------------------
[2012-09-18 11:09:26] maduma at pt dot lu
Need also to create libCstd.so and libCrun.so link
ln -s /usr/lib/libCstd.so.1 /usr/lib/libCstd.so
ln -s /usr/lib/libCrun.so.1 /usr/lib/libCrun.so
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=63104
--
Edit this bug report at https://bugs.php.net/bug.php?id=63104&edit=1