Edit report at https://bugs.php.net/bug.php?id=48795&edit=1
ID: 48795
Comment by: kurt dot newman at cpanel dot net
Reported by: gwynne@php.net
Summary: Building intl 64-bit fails on OS X
Status: Verified
Type: Bug
Package: Compile Failure
Operating System: OS X 10.5 & 10.6; Linux
PHP Version: 5.3 SVN; 5.4.0RC1
Block user comment: N
Private report: N
New Comment:
This problem is cropping up on CentOS 7 x86_64 with PHP 5.3.29.
It looks like the PHP devs resolved this in later versions of PHP by adding PHP_ADD_LIBRARY macros
to acinclude.m4 and aclocal.m4.
The odd thing is, on CentOS 6.5, the resulting sapi/cli/php binary properly links against libstdc++
even though it isn't passing -lstdc++ to the linker. I'll need to figure out why
that's possible at a later date.
To resolve this specific issue, I did the following.
1. Patch acinclude.m4 and aclocal.m4
2. re-run ./buildconf
This regenerates the configure script and ensures that the -lstdc++ is used to properly link
sapi/cli/php. However, it also ensures scripts/php-config is updated with the -lstdc++ library as
well. This update ensures all extensions that that are compiled against your PHP version also link
against stdc++.
The patch:
commit 9fc87ffe4384306abb4454ced58b02a79114038e
Author: S. Kurt Newman <kurt.newman@cpanel.net>
Date: Wed Feb 25 17:45:36 2015 -0600
add stdc++ to acinclude and aclocal for php 5.3.29
diff --git a/acinclude.m4 b/acinclude.m4
index 2681b79..6ad028e 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -762,6 +762,7 @@ AC_DEFUN([PHP_REQUIRE_CXX],[
if test -z "$php_cxx_done"; then
AC_PROG_CXX
AC_PROG_CXXCPP
+ PHP_ADD_LIBRARY(stdc++)
php_cxx_done=yes
fi
])
diff --git a/aclocal.m4 b/aclocal.m4
index 07b5e61..f3770e2 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -762,6 +762,7 @@ AC_DEFUN([PHP_REQUIRE_CXX],[
if test -z "$php_cxx_done"; then
AC_PROG_CXX
AC_PROG_CXXCPP
+ PHP_ADD_LIBRARY(stdc++)
php_cxx_done=yes
fi
])
Previous Comments:
------------------------------------------------------------------------
[2013-06-11 14:10:23] cweiske@php.net
Still happens on 5.3.26. cornelius dot howl at gmail dot com's commands do not help here.
------------------------------------------------------------------------
[2013-03-09 10:14:47] cornelius dot howl at gmail dot com
For this issue, here is the patch in phpbrew
https://github.com/c9s/phpbrew/commit/18ef766d0e013ee87ac7d86e338ebec89fbeb445
------------------------------------------------------------------------
[2013-03-09 10:12:31] cornelius dot howl at gmail dot com
Quick fix for this 5.3.28 should work
edit Makefile and found the rule of
ext/intl/msgformat/msgformat_helpers.cpp
change the $(CC) to $(CXX)
then run:
sed -i '/EXTRA_LIBS = /s|$| -lstdc++|' Makefile
------------------------------------------------------------------------
[2013-03-08 16:27:05] saltwaterc at gmail dot com
sed -i '/EXTRA_LIBS = /s|$| -lstdc++|' Makefile
One liner fix for those who still do (scripted) builds on 5.3.x.
5.3.22 still fails on Ubuntu 12.04.
------------------------------------------------------------------------
[2012-10-26 02:59:59] pgarvin76 at gmail dot com
This is still and issue on 5.3.18, but 5.4.8 built without error. Interestingly if you build intl as
shared you don't get the compile error (how I am currently getting around issue). I am on
Ubuntu 12.04.
------------------------------------------------------------------------
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=48795
--
Edit this bug report at https://bugs.php.net/bug.php?id=48795&edit=1