#19219 [Opn->Fbk]: Cannot build with-informix for Apache DSO
| From: | sniper@php.net | Date: | Wed, 04 Sep 2002 17:27:39 +0000 |
| Subject: | #19219 [Opn->Fbk]: Cannot build with-informix for Apache DSO | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-18439@lists.php.net to get a copy of this message | ||
ID: 19219
Updated by: sniper@php.net
Reported By: jerrysmith@directvinternet.com
-Status: Open
+Status: Feedback
Bug Type: Informix related
Operating System: HPUX 11.0
PHP Version: 4.2.2
New Comment:
First of all: STOP pasting those huge parts of text!!
It's enough to paste the ERRORS only..
Anyway, iirc, it should work the same you did before, ie. copy the
libphp4.sl to .so
Previous Comments:
------------------------------------------------------------------------
[2002-09-04 10:41:41] jerrysmith@directvinternet.com
I downloade the suggested latest tar file. Actually, this provides
worse results:
/bin/sh libtool --silent --mode=link
cc -export-dynamic -g -avoid-version -module -L/usr/informix/lib
-L/usr/inf
ormix/lib/esql -R /usr/informix/lib -R /usr/informix/lib/esql
ext/ctype/ctype.lo ext/informix/ifx.lo ext/mbstring/mbfilter_ja.lo
ext/mbstring/mbfilter_cn.lo ext/mbstring/mbfilter_tw.lo
ext/mbstring/mbfilter_kr.lo ext/mbstring/mbfilter_ru.lo
ext/mbstring/mbfilter.lo ext/mbstring/mbstring.lo
ext/mbstring/mbregex.lo
ext/mbstring/php_mbregex.lo ext/mbstring/html_entities.lo
ext/overload/overload.lo ext/pcre/pcrelib/maketables.lo
ext/pcre/pcrelib/get.lo ext/pcre/pcrelib/study.lo
ext/pcre/pcrelib/pcre.lo
ext/pcre/php_pcre.lo ext/posix/posix.lo ext/session/session.lo
ext/session/mod_files.lo ext/session/mod_mm.lo ext/session/mod_user.lo
ext/standard/array.lo ext/standard/base64.lo
ext/standard/basic_functions.lo
ext/standard/browscap.lo ext/standard/crc32.lo ext/standard/crypt.lo
ext/standard/cyr_convert.lo ext/standard/datetime.lo
ext/standard/dir.lo
ext/standard/dl.lo ext/standard/dns.lo ext/standard/exec.lo
ext/standard/file.lo ext/standard/filestat.lo
ext/standard/flock_compat.lo
ext/standard/formatted_print.lo ext/standard/fsock.lo
ext/standard/head.lo
ext/standard/html.lo ext/standard/image.lo ext/standard/info.lo
ext/standard/iptc.lo ext/standard/lcg.lo ext/standard/link.lo
ext/standard/mail.lo ext/standard/math.lo ext/standard/md5.lo
ext/standard/metaphone.lo ext/standard/microtime.lo
ext/standard/pack.lo
ext/standard/pageinfo.lo ext/standard/parsedate.lo
ext/standard/quot_print.lo ext/standard/rand.lo ext/standard/reg.lo
ext/standard/soundex.lo ext/standard/string.lo ext/standard/scanf.lo
ext/standard/syslog.lo ext/standard/type.lo ext/standard/uniqid.lo
ext/standard/url.lo ext/standard/url_scanner.lo ext/standard/var.lo
ext/standard/versioning.lo ext/standard/assert.lo
ext/standard/strnatcmp.lo
ext/standard/levenshtein.lo ext/standard/incomplete_class.lo
ext/standard/url_scanner_ex.lo ext/standard/ftp_fopen_wrapper.lo
ext/standard/http_fopen_wrapper.lo ext/standard/php_fopen_wrapper.lo
ext/standard/credits.lo ext/standard/var_unserializer.lo
ext/standard/ftok.lo ext/standard/aggregation.lo ext/standard/sha1.lo
ext/tokenizer/tokenizer.lo ext/xml/xml.lo ext/xml/expat/xmlparse.lo
ext/xml/expat/xmlrole.lo ext/xml/expat/xmltok.lo regex/regcomp.lo
regex/regexec.lo regex/regerror.lo regex/regfree.lo TSRM/TSRM.lo
TSRM/tsrm_strtok_r.lo TSRM/tsrm_virtual_cwd.lo main/main.lo
main/snprintf.lo
main/spprintf.lo main/php_sprintf.lo main/safe_mode.lo
main/fopen_wrappers.lo main/alloca.lo main/php_ini.lo main/SAPI.lo
main/rfc1867.lo main/php_content_types.lo main/strlcpy.lo
main/strlcat.lo
main/mergesort.lo main/reentrancy.lo main/php_variables.lo
main/php_ticks.lo
main/streams.lo main/network.lo main/php_open_temporary_file.lo
main/php_logos.lo main/output.lo main/memory_streams.lo
main/user_streams.lo
Zend/zend_language_parser.lo Zend/zend_language_scanner.lo
Zend/zend_ini_parser.lo Zend/zend_ini_scanner.lo Zend/zend_alloc.lo
Zend/zend_compile.lo Zend/zend_constants.lo Zend/zend_dynamic_array.lo
Zend/zend_execute_API.lo Zend/zend_highlight.lo Zend/zend_llist.lo
Zend/zend_opcode.lo Zend/zend_operators.lo Zend/zend_ptr_stack.lo
Zend/zend_stack.lo Zend/zend_variables.lo Zend/zend.lo
Zend/zend_API.lo
Zend/zend_extensions.lo Zend/zend_hash.lo Zend/zend_list.lo
Zend/zend_indent.lo Zend/zend_builtin_functions.lo
Zend/zend_sprintf.lo
Zend/zend_ini.lo Zend/zend_qsort.lo Zend/zend_multibyte.lo
Zend/zend_execute.lo sapi/cli/php_cli.lo sapi/cli/getopt.lo
main/internal_functions_cli.lo -L/usr/informix/lib/esql -lixos
-L/usr/inform
ix/lib/esql -lixgen -L/usr/informix/lib/esql -lixsql
-L/usr/informix/lib -li
xasf -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 -o sapi/cli/php
Installing PHP SAPI module
apxs:Error: file libs/libphp4.sl is not a DSO
*** Error exit code 1
Stop.
------------------------------------------------------------------------
[2002-09-03 18:13:35] sniper@php.net
Well..you can always try this snapshot then:
http://snaps.php.net/php4-latest.tar.gz
Compiled as shared module..
------------------------------------------------------------------------
[2002-09-03 18:09:24] jerrysmith@directvinternet.com
I cannot recompile the Apache. HP has a strange way of doing things.
I attempted to build an Apache webserver but gave up. This version I
am running is a pre-built binary in the hp DEPOT format obtained from
an HP user group.
------------------------------------------------------------------------
[2002-09-03 18:02:39] sniper@php.net
Try compiling PHP as static module for Apache instead.
(this really is not PHP bug but libtool one..)
------------------------------------------------------------------------
[2002-09-03 17:56:02] jerrysmith@directvinternet.com
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 this bug report at http://bugs.php.net/?id=19219&edit=1