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

Reply via email to