ID: 16776 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] Status: Feedback Bug Type: Compile Failure Operating System: RedHat Linux 7.2 PHP Version: 4.2.0 New Comment:
I have the RPM expat-1.95.2-1 installed, provides the library libexpat.so.0.1.0, which is in my lib path. Had no trouble at all configuring and compiling Sablot-0.90. In more searching just now I found the contrib RPM libxmltok-1.0-2 (and libxmltok-devel-1.0.2), which provides the libraries libxmltok and libxmlparse. The file /usr/bin/xmlwf from this package conflicts with /usr/bin/xmlwf from the expat package (way different file sizes, too), but after forcing the package install anyway I was able to complete PHP 4.2.0 configure. Then the make failed with: /bin/sh /usr/local/src/php-4.2.0-module/libtool --silent --mode=link gcc -I. -I/usr/local/src/php-4.2.0-module/ -I/usr/local/src/php-4.2.0-module/main -I/usr/local/src/php-4.2.0-module -I/usr/local/src/php-4.2.0-module/Zend -I/usr/local/src/php-4.2.0-module/ext/mysql/libmysql -I/usr/local/src/php-4.2.0-module/ext/xml/expat -I/usr/local/include -I/usr/local/src/php-4.2.0-module/TSRM -g -O2 -o php -export-dynamic stub.lo libphp4.la /usr/local/lib/libsablot.so: undefined reference to `libiconv_open' /usr/local/lib/libsablot.so: undefined reference to `libiconv_close' /usr/local/lib/libsablot.so: undefined reference to `XML_SetParamEntityParsing' /usr/local/lib/libsablot.so: undefined reference to `libiconv' collect2: ld returned 1 exit status make[1]: *** [php] Error 1 make[1]: Leaving directory `/usr/local/src/php-4.2.0-module' make: *** [all-recursive] Error 1 Previous Comments: ------------------------------------------------------------------------ [2002-04-24 19:33:28] [EMAIL PROTECTED] Where is expat installed in your system? Sablotron requires it..I had to grab some rpms to get it even configure without bailing out. ------------------------------------------------------------------------ [2002-04-24 10:47:32] [EMAIL PROTECTED] Here's the first failure in config.log: [...] configure:69992: checking for iconv configure:70029: gcc -o conftest -g -O2 conftest.c \ -lxmltok -lxmlparse -lcrypt -lresolv -lm -ldl -lnsl \ -lresolv -lcrypt >&5 /usr/bin/ld: cannot find -lxmltok collect2: ld returned 1 exit status configure:70032: $? = 1 [snip test prog printout] configure:70048: result: no [...] There are three more almost identical failures immediately following, on these checks: configure:70056: checking for libiconv configure:70162: checking for libiconv in -liconv configure:70230: checking for iconv in -liconv In each case the error is the same: cannot find -lxmltok. Also, the unwise workaround (which has seemed to work fine on 4.1.2 so far) doesn't actually work on 4.2.0 - it allows the compile, but attempting to start Apache with the module fails with undefined symbol libiconv_open. ------------------------------------------------------------------------ [2002-04-23 19:52:06] [EMAIL PROTECTED] Check the config.log for more detailed error message why the configure failed. And using that kind of workarounds is not very wise. --Jani ------------------------------------------------------------------------ [2002-04-23 19:36:34] [EMAIL PROTECTED] I am trying to compile PHP 4.2.0 on RedHat 7.2. I have Sablot-0.90 and libiconv-1.7 compiled from source and installed in /usr/local, with their libs in the standard path: [root@mennonet3]# ldconfig -v | egrep "iconv|sablot" libiconv_plug.so -> libiconv_plug.so libsablot.so.0 -> libsablot.so.0.90.0 libiconv.so.2 -> libiconv.so.2.0.4 When I run ./configure --enable-xslt --with-xslt-sablot I get: [snip] checking whether to enable xslt support... yes checking for XSLT Sablotron backend... yes checking libexpat dir for Sablotron XSL support... no checking enable JavaScript for Sablotron... no checking for Sablotron libraries in the default path... found Sablotron in /usr/local checking for iconv... no checking for libiconv... no checking for libiconv in -liconv... no checking for iconv in -liconv... no configure: error: iconv not found, in order to build sablotron you need the iconv library I've been able to work around this in a strange way that was recommended to me by someone on a mailing list when I was having similar troubles compiling PHP 4.1.x. I link the object files from the Apache version of Expat-Lite into the shared libs libxmltok and libxmlparse, and then put them in the library path: cd /usr/local/src/apache_1.3.23/src/lib/expat-lite ld -shared -o libxmltok.so xmltok.o ld -shared -o libxmlparse.so *.o mv libxmlparse.so libxmltok.so /usr/local/lib # ldconfig -v | grep libxml libxml2.so.2 -> libxml2.so.2.4.10 libxmlparse.so -> libxmlparse.so libxmltok.so -> libxmltok.so And then the configure and compile work just fine. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=16776&edit=1