[PHP-DEV] Cannot build ext/intl on Fedora 15
Any idea what is going wrong here? /usr/bin/ld: ext/intl/msgformat/msgformat_helpers.o: undefined reference to symbol '__gxx_personality_v0@@CXXABI_1.3' /usr/bin/ld: note: '__gxx_personality_v0@@CXXABI_1.3' is defined in DSO /usr/lib64/libstdc++.so.6 so try adding it to the linker command line /usr/lib64/libstdc++.so.6: could not read symbols: Invalid operation collect2: ld returned 1 exit status -- Sebastian BergmannCo-Founder and Principal Consultant http://sebastian-bergmann.de/ http://thePHP.cc/ -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
Hi! On 8/27/11 1:49 AM, Sebastian Bergmann wrote: note: '__gxx_personality_v0@@CXXABI_1.3' is defined in DSO Judging from a quick search this is caused by libstdc++ missing from link line, and can be fixed by adding it, but I have no idea what's special with new Fedora (i.e., I think some new gcc stuff, no idea what) or why our autoconf magic didn't do what it was supposed to do. Hope autoconf magicians can shed some light on this :) -- Stanislav Malyshev, Software Architect SugarCRM: http://www.sugarcrm.com/ (408)454-6900 ext. 227 -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
Am 28.08.2011 10:00, schrieb Stas Malyshev: > Judging from a quick search this is caused by libstdc++ missing from link > line, and can be fixed by adding it, but I have no idea what's special > with new Fedora (i.e., I think some new gcc stuff, no idea what) or why > our autoconf magic didn't do what it was supposed to do. Hope autoconf > magicians can shed some light on this :) Pierre pointed me to http://forums.nvidia.com/index.php?showtopic=72887 yesterday which suggests that this is caused by a change in recent versions of binutils and the output of "ld --version" being different from what it used to be. I am seeing the same issue on Ubuntu 11.04 btw. -- Sebastian BergmannCo-Founder and Principal Consultant http://sebastian-bergmann.de/ http://thePHP.cc/ -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
Am 28.08.2011 10:12, schrieb Sebastian Bergmann: > Am 28.08.2011 10:00, schrieb Stas Malyshev: >> Judging from a quick search this is caused by libstdc++ missing from link >> line, and can be fixed by adding it, but I have no idea what's special >> with new Fedora (i.e., I think some new gcc stuff, no idea what) or why >> our autoconf magic didn't do what it was supposed to do. Hope autoconf >> magicians can shed some light on this :) > > Pierre pointed me to http://forums.nvidia.com/index.php?showtopic=72887 > yesterday which suggests that this is caused by a change in recent > versions of binutils and the output of "ld --version" being different > from what it used to be. > > I am seeing the same issue on Ubuntu 11.04 btw. and that is why fedora is patcjing even the core-php since years and with nearly each release some patches are changed without them you could not build a RPM - maybe someone shpuld take a look upstream to make this patching obsolete http://rpms.famillecollet.com/SRPMS/php-5.3.8-1.remi.src.rpm Patch1:php-5.3.7-gnusrc.patch Patch2:php-5.3.0-install.patch Patch3:php-5.2.4-norpath.patch Patch4:php-5.3.0-phpize64.patch Patch5:php-5.2.0-includedir.patch Patch6:php-5.2.4-embed.patch Patch7:php-5.3.0-recode.patch Patch8:php-5.3.8-aconf259.patch Patch20: php-4.3.11-shutdown.patch Patch21: php-5.3.3-macropen.patch Patch40: php-5.0.4-dlopen.patch Patch41: php-5.3.0-easter.patch Patch42: php-5.3.1-systzdata-v7.patch Patch43: php-5.3.4-phpize.patch Patch61: php-5.0.4-tests-wddx.patch Patch62: php-5.3.3-tests.patch Patch91: php-5.3.7-oci8conf.patch Patch92: php-5.3.7-readline.patch Patch93: php-5.3.6-mysqli.patch Patch94: php-5.3.7-pdo-dblib-50755.patch signature.asc Description: OpenPGP digital signature
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
On Sun, Aug 28, 2011 at 04:00, Stas Malyshev wrote: > Hi! > > On 8/27/11 1:49 AM, Sebastian Bergmann wrote: >> >> note: '__gxx_personality_v0@@CXXABI_1.3' is defined in DSO > Judging from a quick search this is caused by libstdc++ missing from link > line, and can be fixed by adding it, but I have no idea what's special with > new Fedora (i.e., I think some new gcc stuff, no idea what) or why our > autoconf magic didn't do what it was supposed to do. Hope autoconf magicians > can shed some light on this :) This issue exists on Darwin (OS X) as well. -- Gwynne -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
Le 28/08/2011 10:00, Stas Malyshev a écrit : > but I have no idea what's special with new Fedora I think this is explain there: http://fedoraproject.org/wiki/UnderstandingDSOLinkChange Remi. -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
Le 28/08/2011 10:19, Reindl Harald a écrit : > and that is why fedora is patcjing even the core-php since years and > with nearly each release some patches are changed without them you could > not build a RPM - I can't say for all patches (some are quite old, not from me), but for each new one, as fedora policy is "upstream first", I always file a bug for new required patch. > Patch8: php-5.3.8-aconf259.patch => backport from 5.4 (so not a bug) > Patch43: php-5.3.4-phpize.patch => http://bugs.php.net/53436 > Patch92: php-5.3.7-readline.patch => http://bugs.php.net/54450 > Patch93: php-5.3.6-mysqli.patch => include order, only required on RHEL-4/MySQL 5.5... don't know if it worth a bug... > maybe someone shpuld take a look upstream to make > this patching obsolete Yes, please. Remi. P.S. it's sometime really frustrating to file bugs and never get any feedback... -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
On 08/27/2011 10:49 AM, Sebastian Bergmann wrote: /usr/bin/ld: ext/intl/msgformat/msgformat_helpers.o: undefined reference to symbol '__gxx_personality_v0@@CXXABI_1.3' /usr/bin/ld: note: '__gxx_personality_v0@@CXXABI_1.3' is defined in DSO /usr/lib64/libstdc++.so.6 so try adding it to the linker command line /usr/lib64/libstdc++.so.6: could not read symbols: Invalid operation collect2: ld returned 1 exit status Can somebody please fix this? It would be nice if PHP would build without such issues on new distributions. Thanks! -- Sebastian BergmannCo-Founder and Principal Consultant http://sebastian-bergmann.de/ http://thePHP.cc/ -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
you are the only one to actually experience this, so I suppose you are the only who can fix it as well :) On Wed, Aug 31, 2011 at 11:18 AM, Sebastian Bergmann wrote: > On 08/27/2011 10:49 AM, Sebastian Bergmann wrote: >> >> /usr/bin/ld: ext/intl/msgformat/msgformat_helpers.o: >> undefined reference to symbol '__gxx_personality_v0@@CXXABI_1.3' >> /usr/bin/ld: note: '__gxx_personality_v0@@CXXABI_1.3' is defined in DSO >> /usr/lib64/libstdc++.so.6 so try adding it to the linker command line >> /usr/lib64/libstdc++.so.6: could not read symbols: Invalid operation >> collect2: ld returned 1 exit status > > Can somebody please fix this? It would be nice if PHP would build > without such issues on new distributions. Thanks! > > -- > Sebastian Bergmann Co-Founder and Principal Consultant > http://sebastian-bergmann.de/ http://thePHP.cc/ > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > > -- Pierre @pierrejoye | http://blog.thepimp.net | http://www.libgd.org -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
On Wed, Aug 31, 2011 at 11:32 AM, Pierre Joye wrote: > you are the only one to actually experience this, so I suppose you are > the only who can fix it as well :) > from Gwynne: "This issue exists on Darwin (OS X) as well." this will also happen with debian wheezy(next stable version): http://wiki.debian.org/ToolChain/DSOLinking#DSO_Linking_Changes_for_wheezy and it already happened with the last stable version of Ubuntu (Natty): https://blueprints.launchpad.net/ubuntu/+spec/foundations-n-dso-linking I think we should fix this on our end. -- Ferenc Kovács @Tyr43l - http://tyrael.hu -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
Am 31.08.2011 12:11, schrieb Ferenc Kovacs: > I think we should fix this on our end. Does nobody have the knowledge to fix this? I am sorry that I am unable to fix this myself. -- Sebastian BergmannCo-Founder and Principal Consultant http://sebastian-bergmann.de/ http://thePHP.cc/ -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
Hi! Am 31.08.2011 12:11, schrieb Ferenc Kovacs: I think we should fix this on our end. Does nobody have the knowledge to fix this? I am sorry that I am unable to fix this myself. If somebody shows me how to reproduce this on Darwin, I could look into it in more detail. Or, otherwise, get an access to a system where it can be reproduced. I've noticed we have this in autoconf macros: C_DEFUN([PHP_REQUIRE_CXX],[ if test -z "$php_cxx_done"; then AC_PROG_CXX AC_PROG_CXXCPP case $host_alias in *darwin*) PHP_ADD_LIBRARY(stdc++) ;; esac php_cxx_done=yes fi ]) and intl uses PHP_REQUIRE_CXX. Maybe we should add stdc++ for everybody - or, even better, add it to INTL libs instead of PHP libs (in case it's build shared)? -- Stanislav Malyshev, Software Architect SugarCRM: http://www.sugarcrm.com/ (408)454-6900 ext. 227 -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
Bump - this is still a live issue on Ubuntu 11.10, for instance. I just hacked my Ubuntu PHP-from-source installer to touch up the Makefile by prepending -lstdc++ to EXTRA_LIBS. That does the job. Which I knew more about autoconf, I'd like to help figure this out properly so everyone doesn't wind up maintaining hacks to compile PHP from source. It discourages a very large community from trying new releases. Is this perhaps because some of the code being included in the PHP build happens to be C++ code? (Not readily apparent from the outside of course.) -- Tom Boutell P'unk Avenue 215 755 1330 punkave.com window.punkave.com -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
On 02/26/2012 07:19 PM, Tom Boutell wrote: > Bump - this is still a live issue on Ubuntu 11.10, for instance. > > I just hacked my Ubuntu PHP-from-source installer to touch up the > Makefile by prepending -lstdc++ to EXTRA_LIBS. That does the job. > > Which I knew more about autoconf, I'd like to help figure this out > properly so everyone doesn't wind up maintaining hacks to compile PHP > from source. It discourages a very large community from trying new > releases. > > Is this perhaps because some of the code being included in the PHP > build happens to be C++ code? (Not readily apparent from the outside > of course.) > My dev box is Ubuntu 11.10 and I have no issues building ext/intl. -Rasmus -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
Hmm. Here is my apt-get install line, starting from a stock install of 11.10 in virtualbox: apt-get -y install build-essential apache2 libxml2-dev libcurl4-openssl-dev \ libcurl4-openssl-dev libjpeg-dev libpng-dev libfreetype6-dev libicu-dev \ libmcrypt-dev mysql-server mysql-client libmysqlclient-dev libxslt-dev \ autoconf libltdl-dev Then I pull down 5.3.10, cd to it and run this configure line: './configure' '--enable-fastcgi' '--with-gd' '--with-pdo-mysql' '--with-curl' '--with-mysql' '--with-freetype-dir=/usr' '--with-jpeg-dir=/usr' '--with-mcrypt' '--with-zlib' '--enable-mbstring' '--enable-ftp' '--with-xsl' '--with-openssl' '--with-kerberos' '--enable-exif' '--enable-intl' I then run 'make', which bombs with the error mentioned at link time unless I add -lstdc++ manually. Anyone see a missing package that makes build-essential a little more essential? (: I'll try this again in a fresh install of ubuntu 11.x (shoot, forgot to take a virtualbox snapshot last time). On Sun, Feb 26, 2012 at 2:22 PM, Rasmus Lerdorf wrote: > On 02/26/2012 07:19 PM, Tom Boutell wrote: >> Bump - this is still a live issue on Ubuntu 11.10, for instance. >> >> I just hacked my Ubuntu PHP-from-source installer to touch up the >> Makefile by prepending -lstdc++ to EXTRA_LIBS. That does the job. >> >> Which I knew more about autoconf, I'd like to help figure this out >> properly so everyone doesn't wind up maintaining hacks to compile PHP >> from source. It discourages a very large community from trying new >> releases. >> >> Is this perhaps because some of the code being included in the PHP >> build happens to be C++ code? (Not readily apparent from the outside >> of course.) >> > > My dev box is Ubuntu 11.10 and I have no issues building ext/intl. > > -Rasmus -- Tom Boutell P'unk Avenue 215 755 1330 punkave.com window.punkave.com -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
On Sun, Feb 26, 2012 at 20:34, Tom Boutell wrote: > Hmm. > > Here is my apt-get install line, starting from a stock install of > 11.10 in virtualbox: > > apt-get -y install build-essential apache2 libxml2-dev libcurl4-openssl-dev \ > libcurl4-openssl-dev libjpeg-dev libpng-dev libfreetype6-dev libicu-dev \ > libmcrypt-dev mysql-server mysql-client libmysqlclient-dev libxslt-dev \ > autoconf libltdl-dev > > Then I pull down 5.3.10, cd to it and run this configure line: > > './configure' '--enable-fastcgi' '--with-gd' '--with-pdo-mysql' > '--with-curl' '--with-mysql' '--with-freetype-dir=/usr' > '--with-jpeg-dir=/usr' '--with-mcrypt' '--with-zlib' > '--enable-mbstring' '--enable-ftp' '--with-xsl' '--with-openssl' > '--with-kerberos' '--enable-exif' '--enable-intl' The quick fix is to build it shared, not statically. See also http://php.markmail.org/message/z2qkmbipmhhpwzx4 -Hannes -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
If what I did is basically already in 5.4 and won't be finding its way back to 5.3, I guess I'm good with my hack for now. What component are you suggesting I build shared? On Sun, Feb 26, 2012 at 2:39 PM, Hannes Magnusson wrote: > On Sun, Feb 26, 2012 at 20:34, Tom Boutell wrote: >> Hmm. >> >> Here is my apt-get install line, starting from a stock install of >> 11.10 in virtualbox: >> >> apt-get -y install build-essential apache2 libxml2-dev libcurl4-openssl-dev \ >> libcurl4-openssl-dev libjpeg-dev libpng-dev libfreetype6-dev libicu-dev \ >> libmcrypt-dev mysql-server mysql-client libmysqlclient-dev libxslt-dev \ >> autoconf libltdl-dev >> >> Then I pull down 5.3.10, cd to it and run this configure line: >> >> './configure' '--enable-fastcgi' '--with-gd' '--with-pdo-mysql' >> '--with-curl' '--with-mysql' '--with-freetype-dir=/usr' >> '--with-jpeg-dir=/usr' '--with-mcrypt' '--with-zlib' >> '--enable-mbstring' '--enable-ftp' '--with-xsl' '--with-openssl' >> '--with-kerberos' '--enable-exif' '--enable-intl' > > The quick fix is to build it shared, not statically. > See also http://php.markmail.org/message/z2qkmbipmhhpwzx4 > > -Hannes -- Tom Boutell P'unk Avenue 215 755 1330 punkave.com window.punkave.com -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
On 02/26/2012 07:43 PM, Tom Boutell wrote: > If what I did is basically already in 5.4 and won't be finding its > way back to 5.3, I guess I'm good with my hack for now. Interesting, I never noticed it, but I tried your exact configure switches and I was able to reproduce it. Here is what I use on Ubuntu 11.10 and it works fine: './configure' \ '--with-curlwrappers' \ '--enable-zend-multibyte' \ '--enable-mbstring' \ '--with-gd' \ '--with-jpeg-dir=/usr' \ '--with-png-dir=/usr' \ '--with-freetype-dir=/usr' \ '--with-t1lib=/usr' \ '--enable-gd-native-ttf' \ '--enable-exif' \ '--with-config-file-path=/etc/php53/apache2' \ '--with-config-file-scan-dir=/etc/php53/apache2/conf.d' \ '--with-mysql=/usr' \ '--with-zlib' \ '--with-zlib-dir=/usr' \ '--with-gettext' \ '--with-kerberos' \ '--with-imap-ssl' \ '--with-mcrypt=/usr/local' \ '--with-iconv' \ '--with-ldap=/usr' \ '--enable-sockets' \ '--with-openssl' \ '--with-pspell' \ '--with-pdo-mysql=/usr' \ '--with-pdo-sqlite' \ '--enable-soap' \ '--enable-xmlreader' \ '--with-xsl' \ '--enable-ftp' \ '--enable-cgi' \ '--enable-pcntl' \ '--with-curl=/usr' \ '--with-tidy' \ '--with-xmlrpc' \ '--enable-mbstring' \ '--enable-sysvsem' \ '--enable-sysvshm' \ '--enable-shmop' \ '--with-readline' \ '--with-mysqli=/usr/bin/mysql_config' \ '--prefix=/usr/local' \ "$@" So one of these magically fixes the problem by forcing the lib to be pulled in. -Rasmus -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
On Sun, Feb 26, 2012 at 23:34, Rasmus Lerdorf wrote: > On 02/26/2012 07:43 PM, Tom Boutell wrote: >> If what I did is basically already in 5.4 and won't be finding its >> way back to 5.3, I guess I'm good with my hack for now. > > Interesting, I never noticed it, but I tried your exact configure > switches and I was able to reproduce it. Here is what I use on Ubuntu > 11.10 and it works fine: > > './configure' \ > '--with-curlwrappers' \ > '--enable-zend-multibyte' \ > '--enable-mbstring' \ > '--with-gd' \ > '--with-jpeg-dir=/usr' \ > '--with-png-dir=/usr' \ > '--with-freetype-dir=/usr' \ > '--with-t1lib=/usr' \ > '--enable-gd-native-ttf' \ > '--enable-exif' \ > '--with-config-file-path=/etc/php53/apache2' \ > '--with-config-file-scan-dir=/etc/php53/apache2/conf.d' \ > '--with-mysql=/usr' \ > '--with-zlib' \ > '--with-zlib-dir=/usr' \ > '--with-gettext' \ > '--with-kerberos' \ > '--with-imap-ssl' \ > '--with-mcrypt=/usr/local' \ > '--with-iconv' \ > '--with-ldap=/usr' \ > '--enable-sockets' \ > '--with-openssl' \ > '--with-pspell' \ > '--with-pdo-mysql=/usr' \ > '--with-pdo-sqlite' \ > '--enable-soap' \ > '--enable-xmlreader' \ > '--with-xsl' \ > '--enable-ftp' \ > '--enable-cgi' \ > '--enable-pcntl' \ > '--with-curl=/usr' \ > '--with-tidy' \ > '--with-xmlrpc' \ > '--enable-mbstring' \ > '--enable-sysvsem' \ > '--enable-sysvshm' \ > '--enable-shmop' \ > '--with-readline' \ > '--with-mysqli=/usr/bin/mysql_config' \ > '--prefix=/usr/local' \ > "$@" > > So one of these magically fixes the problem by forcing the lib to be > pulled in. Uhm? You are not enabling intl? -Hannes -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
On Sun, Feb 26, 2012 at 20:43, Tom Boutell wrote: > If what I did is basically already in 5.4 and won't be finding its way > back to 5.3, I guess I'm good with my hack for now. > > What component are you suggesting I build shared? c++ extensions in 5.3, it should work fine in 5.4 with the exception of Nunos worries.. fixing that requires slightly more mucking around, but noone has complained about that yet though. -Hannes -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
On Sun, February 26, 2012 1:19 pm, Tom Boutell wrote: > Bump - this is still a live issue on Ubuntu 11.10, for instance. > > I just hacked my Ubuntu PHP-from-source installer to touch up the > Makefile by prepending -lstdc++ to EXTRA_LIBS. That does the job. > > Which I knew more about autoconf, I'd like to help figure this out > properly so everyone doesn't wind up maintaining hacks to compile PHP > from source. It discourages a very large community from trying new > releases. > > Is this perhaps because some of the code being included in the PHP > build happens to be C++ code? (Not readily apparent from the outside > of course.) I believe core PHP is all in C. Extensions, however, could be in C++ And if one extension has forgotten to edit the Makefiles to do -lstdc++ I presume that it could be the cause. I'd even hazard a guess that it would only surface if one disabled other extensions that generally PRECEDE it in the configure / make process, as once the -lstdc++ is in there, it remains for the rest of the build process. This is just a guess, however... At any rate, if you could eliminate each extension, one by one, you might find the culprit, assuming my guesses are valid. No promises anything I have said is even "correct" in any way. -- brain cancer update: http://richardlynch.blogspot.com/search/label/brain%20tumor Donate: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FS9NLTNEEKWBE -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
On Mon, Feb 27, 2012 at 17:43, Richard Lynch wrote: > On Sun, February 26, 2012 1:19 pm, Tom Boutell wrote: >> Bump - this is still a live issue on Ubuntu 11.10, for instance. >> >> I just hacked my Ubuntu PHP-from-source installer to touch up the >> Makefile by prepending -lstdc++ to EXTRA_LIBS. That does the job. >> >> Which I knew more about autoconf, I'd like to help figure this out >> properly so everyone doesn't wind up maintaining hacks to compile PHP >> from source. It discourages a very large community from trying new >> releases. >> >> Is this perhaps because some of the code being included in the PHP >> build happens to be C++ code? (Not readily apparent from the outside >> of course.) > > I believe core PHP is all in C. > > Extensions, however, could be in C++ > ext/intl contains one or two c++ files. -Hannes -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] Cannot build ext/intl on Fedora 15
On Mon, 2012-02-27 at 10:43 -0600, Richard Lynch wrote: > I believe core PHP is all in C. Correct. > Extensions, however, could be in C++ Correct. > And if one extension has forgotten to edit the Makefiles to do > -lstdc++ I presume that it could be the cause. Nobody should directly link -lstdc++, that name is compiler-specific. Instead a C++ compiler has to be used in this case for the final linkage, so instead of linking using gcc one has to use g++ when using a gcc chain. For shared builds the build system has a flag to switch this. When building PHP itself the build system ignores that flag. (that's where the tip to build it shared came from) > I'd even hazard a guess that it would only surface if one disabled > other extensions that generally PRECEDE it in the configure / make > process, as once the -lstdc++ is in there, it remains for the rest of > the build process. This is just a guess, however... No, as no extension should refer to libstdc++ (see above) this is not the case. A reason one one might not see it is that PHP is linked against a library which was linked using libstdc++ and therefore pulls it in. (So if ext/foo was a wrapper around libfoo.so and libfoo.so would be linked using a C++ compiler this would work) > At any rate, if you could eliminate each extension, one by one, you > might find the culprit, assuming my guesses are valid. There are two possible solutions: * change the build system to link php using the C++ compiler to pull in the C++ standard lib. This might have some issues on portability of the binary, make the process larger, etc. * figure out which C++ things are being used that require the C++ standard library and get rid of them. I didn't look into this but it seems libintl doesn't need the C++ standard lib (else it should pull it in) and the error message refering to __gxx_personality_v0 sounds like a compiler feature which might be controlled by using some compiler flags. My guess is that this is part of gcc's exception or RTTI implementation which can be disabled (try -fno-rtti or -fno-exception in CXXFLAGS) ... if this is the case disabling these features for these files would be the fest thing to do. (while it causes trouble if it is done for other [future or pecl?]) files which might need these features johannes -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php