phpubuntuapache2xmldiff

pecl xmldiff unable to load in apache


I can't load xmldiff to apache

pecl install xmldiff did not throw any errors BUT

I error get in apache error.log is :

PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/xmldiff.so' - /usr/lib/php5/20090626+lfs/xmldiff.so: undefined symbol:
_ZTVN10__cxxabiv117__class_type_infoE in Unknown on line 0

dynamic links look ok (at least to me )

ldd /usr/lib/php5/20090626+lfs/xmldiff.so
    linux-gate.so.1 =>  (0xf57fe000)
    libxml2.so.2 => /usr/lib/i386-linux-gnu/libxml2.so.2 (0xb75b3000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb7590000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb73eb000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb73e5000)
    libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb73cf000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb73a3000)
    /lib/ld-linux.so.2 (0xb771c000)

How can I fix or troubleshoot it ?


Solution

  • Huge thanks to the maintainer of the xmldiff for php - Anatol Belski!

    The issue seems to be a configuration one, for some reason it doesn't link against libstdc++. Anatol commited a fix to config.m4, in the current trunk. phpize && ./configure --with-xmldiff && make should be enough to build, then when you check on ldd and see a line like

    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fe96d363000)

    the extension was loaded without errors.