#19219 [NEW]: Cannot build with-informix for Apache DSO
| From: | jerrysmith at directvinternet dot com | Date: | Tue, 03 Sep 2002 22:56:02 +0000 |
| Subject: | #19219 [NEW]: Cannot build with-informix for Apache DSO | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-18340@lists.php.net to get a copy of this message | ||
From: jerrysmith@directvinternet.com
Operating system: HPUX 11.0
PHP version: 4.2.2
PHP Bug Type: Informix related
Bug description: Cannot build with-informix for Apache DSO
CONFIGURATION
=============
Running the HP Depot Version of Apache 1.3.26 that we pre-built for HPUX11
to work with DSO.
----------------------------------
[hpserv02] ./httpd -v
Server version: Apache/1.3.26 (Unix)
Server built: Jun 24 2002 20:07:33
[hpserv02] ./httpd -l
Compiled-in modules:
http_core.c
mod_so.c
suexec: disabled; invalid wrapper /usr/local/apache/bin/suexec
[hpserv02]
-----------------------------------
BUG DESCRIPTION
===============
The HPUX os shared libraries are built with the .sl suffix. I found a
post on google where the fix is to simply rename the file libphp4.sl to
libphp4.so.
I created a script for various types of builds to automatically fix this
and help identify the informix problem.
Note: I can build the basic php4.2.2 by configuring with and or without
mysql and it executes fine..ie.. I can run the test url <?phpinfo()?>.
The informix build completes but the apache will not start.
STEPS TO RECREATE PROBLEM
==========================
The script I am using to correct the shared library problem is as follows:
(note the different configurations I have built)
# Setup Environment..
export INFORMIXDIR=/usr/informix
export PATH=$PATH:$INFORMIXDIR/bin
export DBPATH=/usr/informix
export INFORMIXSERVER=sedb
export
LD_LIBRARY_PATH=/usr/lib:/opt/langtools/lib:/usr/informix/lib/esqlc:/usr/informix/lib/incl/esqlc
# added these variables from a post I found on Google that reportedly
worked for static build..
export "IFX_LIBS=""-L$INFORMIXDIR/lib -L$INFORMIXDIR/lib/esql"""
export "IFX_INCDIR=""-L$INFORMIXDIR/incl/esql"""
export "IFX_LIBDIR=""-L$INFORMIXDIR/lib -L$INFORMIXDIR/lib/esql"""
# stop WebServer
apachectl stop
./configure --with-apxs=/usr/informix/apache/bin/apxs --with-mysql=no
--with-informix=yes
#./configure --with-apxs=/usr/informix/apache/bin/apxs --with-mysql=yes
#./configure --with-apxs=/usr/informix/apache/bin/apxs --with-mysql=no
make
make install
# since HPUX shared libraries have the .sl suffix we have to rename
thelibphp4
#
mv libs/libphp4.sl libs/libphp4.so
cp libs/libphp4.so /usr/informix/apache/lib/modules
# re-execute the failed command..
apxs -S LIBEXECDIR="/usr/informix/apache/lib/modules" -i -a -n php4
libs/libphp4.so
# start WebServer
apachectl start
####################END OF SCRIPT###########################
NOTE: As stated before, if I build a php without the informix module, all
works as it should.
If I build the informix configuration, the build completed, but with the
following warnings:
.....previous lines omitted...
Making all in .
/bin/sh /usr/local/src/php-4.2.2/libtool --silent --mode=link cc
-I. -I/usr/local/src/php-4.2.2/ -I/usr/local/src/php-4.2.2/main
-I/usr/local/src/php-4.2.2 -I/usr/local/apache/include
-I/usr/local/src/php-4.2.2/Zend -I/usr/informix/incl/esql
-I/usr/local/src/php-4.2.2/ext/xml/expat -DHPUX11 -DUSE_HSREGEX
-DUSE_EXPAT -I/usr/local/src/php-4.2.2/TSRM -g -prefer-pic -o libphp4.la
-rpath /usr/local/src/php-4.2.2/libs -avoid-version -L/usr/informix/lib
-L/usr/informix/lib/esql -R /usr/informix/lib -R /usr/informix/lib/esql
stub.lo Zend/libZend.la sapi/apache/libsapi.la main/libmain.la
regex/libregex.la /usr/local/src/php-4.2.2/ext/ctype/libctype.la
/usr/local/src/php-4.2.2/ext/informix/libinformix.la
/usr/local/src/php-4.2.2/ext/pcre/libpcre.la
/usr/local/src/php-4.2.2/ext/posix/libposix.la
/usr/local/src/php-4.2.2/ext/session/libsession.la
/usr/local/src/php-4.2.2/ext/standard/libstandard.la
/usr/local/src/php-4.2.2/ext/xml/libxml.la TSRM/libtsrm.la -lpam
-L/usr/informix/lib/esql -lixos -L/usr/informix/lib/esql -lixgen
-L/usr/informix/lib/esql -lixsql -L/usr/informix/lib -lixasf
-L/usr/informix/lib/esql -lixos -L/usr/informix/lib/esql -lixgen
-L/usr/informix/lib/esql -lixgls -lnsl_s -lV3 -lcl -lsec
-L/usr/informix/lib/esql -lixglx -lcrypt -lm -lnsl -lcrypt
*** Warning: This library needs some functionality provided by -lV3.
*** I have the capability to make that library automatically link in when
*** you link to this library. But I can only do this if you have a
*** shared version of the library, which you do not appear to have.
*** Warning: This library needs some functionality provided by -lcrypt.
*** I have the capability to make that library automatically link in when
*** you link to this library. But I can only do this if you have a
*** shared version of the library, which you do not appear to have.
*** Warning: This library needs some functionality provided by -lcrypt.
*** I have the capability to make that library automatically link in when
*** you link to this library. But I can only do this if you have a
*** shared version of the library, which you do not appear to have.
*** The inter-library dependencies that have been dropped here will be
*** automatically added whenever a program is linked with this library
*** or is declared to -dlopen it.
Making install in .
/usr/local/src/php-4.2.2/build/shtool mkdir -p
"/usr/local/apache/lib/modules" && /usr/informix/apache/bin/apxs -S
LIBEXECDIR="/usr/local/apache/lib/modules" -i -a -n php4 libs/libphp4.sl
apxs:Error: file libs/libphp4.sl is not a DSO
*** Error exit code 1
Stop.
*** Error exit code 1
Stop.
##########################################################
ERROR ENCOUNTERED
=================
at this point my script fixes the above error and attempts to start the
apache server...
###########LINES FROM SCRIPT###############
# since HPUX shared libraries have the .sl suffix we have to rename
thelibphp4
#
mv libs/libphp4.sl libs/libphp4.so
cp libs/libphp4.so /usr/informix/apache/lib/modules
# re-execute the failed command..
apxs -S LIBEXECDIR="/usr/informix/apache/lib/modules" -i -a -n php4
libs/libphp4.so
# start WebServer
apachectl start
###############################################
[activating module `php4' in /usr/local/apache/etc/httpd.conf]
cp libs/libphp4.so /usr/informix/apache/lib/modules/libphp4.so
chmod 755 /usr/informix/apache/lib/modules/libphp4.so
cp /usr/local/apache/etc/httpd.conf /usr/local/apache/etc/httpd.conf.bak
cp /usr/local/apache/etc/httpd.conf.new /usr/local/apache/etc/httpd.conf
rm /usr/local/apache/etc/httpd.conf.new
/usr/lib/dld.sl: Can't shl_load() a library containing Thread Local
Storage: /usr/lib/libcl.2
/usr/lib/dld.sl: Exec format error
Syntax error on line 236 of /usr/local/apache/etc/httpd.conf:
Cannot load /usr/local/apache/lib/modules/libphp4.so into server: Exec
format error
/usr/informix/apache/bin/apachectl start: httpd could not be started
===============END PROBLEM DEFINITION====================
Notes:
I have done some research and believe that the library in question
(libcl.2 not a shared library) could be replaced with a shared one in the
make file, but I don't know what library to replace it with?
I have completely wiped the file structure containing the php-4.2.2
directory and re-run the entire process with no change in the results.
Please help!
Thanks,
Jerry
--
Edit bug report at http://bugs.php.net/?id=19219&edit=1
--
Try a CVS snapshot: http://bugs.php.net/fix.php?id=19219&r=trysnapshot
Fixed in CVS: http://bugs.php.net/fix.php?id=19219&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=19219&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=19219&r=needtrace
Try newer version: http://bugs.php.net/fix.php?id=19219&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=19219&r=support
Expected behavior: http://bugs.php.net/fix.php?id=19219&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=19219&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=19219&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=19219&r=globals