Emerging PHP 4.2.2 + XML support with GCC 3.1 fails when linking against sablotron. Re-emerging sablotron to possibly "clean up" symbols in libsablot did not work, although sablotron re-emerge went cleanly. CFLAGS/CXXFLAGS used were: CFLAGS="-march=pentium2 -fomit-frame-pointer -mmmx -O3 -pipe" CXXFLAGS="-march=pentium2 -fomit-frame-pointer -mmmx -O3 -pipe" and also CFLAGS="-march=pentium2 -fomit-frame-pointer -mmmx -O2 -pipe" CXXFLAGS="-march=pentium2 -fomit-frame-pointer -mmmx -O2 -pipe" Error output: /bin/sh /var/tmp/portage/php-4.2.2/work/php-4.2.2/libtool --silent --mode=link gcc -I. -I/var/tmp/portage/php-4.2.2/work/php-4.2.2/ -I/var/tmp/portage/php-4.2.2/work/php-4.2.2/main -I/var/tmp/portage/php-4.2.2/work/php-4.2.2 -I/var/tmp/portage/php-4.2.2/work/php-4.2.2/Zend -I/usr/include/libxml2 -I/usr/include/imap -I/usr/include/mysql -I/var/tmp/portage/php-4.2.2/work/php-4.2.2/ext/xml/expat -I/var/tmp/portage/php-4.2.2/work/php-4.2.2/TSRM -march=pentium2 -fomit-frame-pointer -mmmx -O2 -pipe -o php -export-dynamic stub.lo libphp4.la libtool: link: warning: library `/usr/lib/libxmlparse.la' was moved. libtool: link: warning: library `/usr/lib/libxmltok.la' was moved. /usr/lib/gcc-lib/i686-pc-linux-gnu/3.1/../../../libc-client.a(osdep.o): In function `ssl_server_init': osdep.o(.text+0x9b5d): the use of `tmpnam' is dangerous, better use `mkstemp' /usr/lib/gcc-lib/i686-pc-linux-gnu/3.1/../../../libswf.a(swfimage.o): In function `swf_definebitmap': swfimage.o(.text+0x672): the use of `mktemp' is dangerous, better use `mkstemp' /usr/lib/libsablot.so: undefined reference to `operator new[](unsigned)' /usr/lib/libsablot.so: undefined reference to `vtable for __cxxabiv1::__si_class_type_info' /usr/lib/libsablot.so: undefined reference to `operator delete(void*)' /usr/lib/libsablot.so: undefined reference to `__gxx_personality_v0' /usr/lib/libsablot.so: undefined reference to `__cxa_pure_virtual' /usr/lib/libsablot.so: undefined reference to `vtable for __cxxabiv1::__class_type_info' /usr/lib/libsablot.so: undefined reference to `operator delete[](void*)' /usr/lib/libsablot.so: undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info' /usr/lib/libsablot.so: undefined reference to `operator new(unsigned)' collect2: ld returned 1 exit status make[1]: *** [php] Error 1 make[1]: Leaving directory `/var/tmp/portage/php-4.2.2/work/php-4.2.2' make: *** [all-recursive] Error 1 !!! ERROR: The ebuild did not complete successfully. !!! Function src_compile, Line 137, Exitcode 2 !!! compile problem !!! emerge aborting on /usr/portage/dev-php/php/php-4.2.2.ebuild .
Seems like the same bug as Bug #3876
hopefully carpaski can shed some light onto this...
this sucker took me a while to track down ... i had it in some other ebuilds ... basically gcc3.x separated a lot of C and C++ functions into different libraries in order to fix, just link against libstdc++ ... so in this case, hack the makefile to have '-lstdc++'
Should be fixed.