Dear PHP Colleagues,
After a rest period of nearly a year, we are back to our old tricks,
trying to build a "kitchen sink" version of the latest PHP release, 4.1.1,
on our SPARC platforms under Solaris 2.8/gcc 2.95.2, using as many options
as possible.
Not suprisingly, we have encountered a number of problems, to which we've
thus far gotten no insight from the various PHP mailing lists we've posted
to. We send this summary prior to backing off to a pared-down version of PHP:
1) Some of the configure options appear to be obsolete. For example, PHP 4.1.1
comes with an internal copy of expat; if we configure it with
"--with-expat=<path>", it complains about not finding the header file
"expat.h". It would appear to us that "--with-expat=" should not even be
supported, and that "enable-expat" should be supported to trigger inclusion
of the internally-supplied version of expat. Are there other extensions
that are now included in the PHP code base for which such options should
be eliminated?
2) When we tried to compile php 4.1.1 with the option
"--with-snmp=/depot/package/ucd-snmp_4.2.1", we got the following error
message (apologies for its length, but did not want to eliminate information
here):
mkdir .libs
rm -fr .libs/libphp_java.la .libs/libphp_java.* .libs/libphp_java.*
(cd . && ln -s java.lo java.o)
/usr/ucb/echo "{ global:" > .libs/libphp_java.so.exp
cat /site4/web_kit_1.0_rodgers/php_4.1.1/sapi/apache/php.sym | sed -e "s
/\(.*\)/\1;/" >> .libs/libphp_java.so.exp
/usr/ucb/echo "local: *; };" >> .libs/libphp_java.so.exp
/usr/ccs/bin/ld -G -M .libs/libphp_java.so.exp -h libphp_java.so -o .li
bs/libphp_java.so java.lo -R/depot/package/recode_3.5/lib -R/depot/pac
kage/xmlrpc-epi_0.50/vendor/lib -R/depot/lib/.libs -R/depot/package/pdfl
ib_3.0/lib -R/depot/package/jpeg_6b/lib -R/depot/package/mysql_3.23.46/v
endor/lib/mysql -R/depot/package/mhash_0.6.1/lib -R/depot/package/libmcr
ypt_2.4.19/vendor/lib -R/depot/package/libtool_1.4.2/vendor/lib -R/depot
/package/openLDAP_2.0.19/vendor/lib -R/depot/package/libiconv_1.7/vendor
/lib -R/depot/package/gettext_0.10.40/vendor/lib -R/depot/package/t1lib_
1.0.1/lib -R/depot/package/freetype_2.0.5/lib -R/depot/package/libxml_2.
4.13/vendor/lib -R/depot/package/gdbm_1.8/lib -R/depot/package/curl_7.9.
2/lib -R/depot/package/recode_3.5/lib -R/depot/package/xmlrpc-epi_0.50/v
endor/lib -R/depot/package/ucd-snmp_4.2.1/lib -R/depot/package/pdflib_3.
0/lib -R/depot/package/jpeg_6b/lib -R/depot/package/mysql_3.23.46/vendor
/lib/mysql -R/depot/package/mhash_0.6.1/lib -R/depot/package/libmcrypt_2
.4.19/vendor/lib -R/depot/package/libtool_1.4.2/vendor/lib -R/depot/pack
age/openLDAP_2.0.19/vendor/lib -R/depot/package/libiconv_1.7/vendor/lib
-R/depot/package/gettext_0.10.40/vendor/lib -R/depot/package/t1lib_1.0.1
/lib -R/depot/package/freetype_2.0.5/lib -R/depot/package/libxml_2.4.13/
vendor/lib -R/depot/package/gdbm_1.8/lib -R/depot/package/curl_7.9.2/lib
-R/usr/ucblib -R/depot/package/openssl_0.9.6b/vendor/lib -R/depot/packa
ge/gcc_2.95.2/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2 -R/depot/package/z
lib_1.1.3/lib -R/depot/package/bzip2_1.0.1/lib -R/depot/package/cracklib
_2.7/vendor/lib -R/depot/lib -R/depot/package/rsaref_2.0/lib -R/depot/pa
ckage/openssl_0.9.6b/lib -R/depot/package/berkeley_db_3.2.9/lib -R/depot
/package/libpng_1.2.1/lib -R/depot/package/xpm_3.4k/lib -R/depot/package
/t1lib_1.1.1/vendor/lib -R/depot/package/gd_1.8.3/lib -R/site4/web_kit_1
.0_rodgers/imap-2001a/c-client -R/depot/package/mhash_0.8.13/lib -R/depo
t/package/mysql_3.23.46/lib/mysql -R/depot/package/ncurses_5.2/vendor/li
b -R/depot/package/tiff_3.5.5/lib -R/depot/package/pdflib_4.0.1/lib -R/d
epot/package/recode_3.6/vendor/lib -L/depot/package/libiconv_1.7/lib -L
/site4/web_kit_1.0_rodgers/openldap-2.0.19/libraries -L/depot/package/li
btool_1.3.4/lib -L/usr/local/lib -L/depot/lib -L/usr/ucblib -L/depot/pac
kage/openssl_0.9.6b/vendor/lib -L/depot/package/gcc_2.95.2/lib/gcc-lib/s
parc-sun-solaris2.8/2.95.2 -L/depot/package/zlib_1.1.3/lib -L/depot/pack
age/bzip2_1.0.1/lib -L/depot/package/cracklib_2.7/vendor/lib -L/depot/pa
ckage/curl_7.9.2/lib -L/depot/package/rsaref_2.0/lib -L/depot/package/op
enssl_0.9.6b/lib -L/depot/package/gdbm_1.8/lib -L/depot/package/berkeley
_db_3.2.9/lib -L/depot/package/libxml_2.4.13/vendor/lib -L/depot/package
/jpeg_6b/lib -L/depot/package/libpng_1.2.1/lib -L/depot/package/xpm_3.4k
/lib -L/depot/package/freetype_2.0.5/lib -L/depot/package/t1lib_1.1.1/ve
ndor/lib -L/depot/package/gd_1.8.3/lib -L/depot/package/gettext_0.10.40/
vendor/lib -L/depot/package/libiconv_1.7/vendor/lib -L/site4/web_kit_1.0
_rodgers/imap-2001a/c-client -L/depot/package/openLDAP_2.0.19/vendor/lib
-L/depot/package/libmcrypt_2.4.19/vendor/lib -L/depot/package/mhash_0.8.
13/lib -L/depot/package/mysql_3.23.46/lib/mysql -L/depot/package/ncurses
_5.2/vendor/lib -L/depot/package/tiff_3.5.5/lib -L/depot/package/pdflib_
4.0.1/lib -L/depot/package/recode_3.6/vendor/lib -L/depot/package/ucd-sn
mp_4.2.1/lib -L/depot/package/xmlrpc-epi_0.50/vendor/lib -lpam /depot/pa
ckage/recode_3.5/lib/librecode.so -lc-client -ldl /depot/package/xmlrpc-
epi_0.50/vendor/lib/libxmlrpc.so /depot/lib/.libs/libsnmp.so -lkstat /de
pot/package/pdflib_3.0/lib/libpdf.so -ltiff -lpng -lz -lncurses /depot/p
ackage/mysql_3.23.46/vendor/lib/mysql/libmysqlclient.so -lz /depot/packa
ge/mhash_0.6.1/lib/libmhash.so /depot/package/libmcrypt_2.4.19/vendor/li
b/libmcrypt.so /depot/package/libtool_1.4.2/vendor/lib/libltdl.so /depot
/package/openLDAP_2.0.19/vendor/lib/libldap.so /depot/package/openLDAP_2
.0.19/vendor/lib/liblber.so -lcrypt -lpam /depot/package/libiconv_1.7/ve
ndor/lib/libiconv.so /depot/package/gettext_0.10.40/vendor/lib/libintl.s
o -lgd /depot/package/t1lib_1.0.1/lib/libt1.so /depot/package/freetype_2
.0.5/lib/libfreetype.so -lX11 -lXpm -lpng -lz /depot/package/jpeg_6b/lib
/libjpeg.so -lz /depot/package/libxml_2.4.13/vendor/lib/libxml2.so -ldb-
3 /depot/package/gdbm_1.8/lib/libgdbm.so -lnsl -lsocket -ldl -lcrypto -l
ssl -lrsaref /depot/package/curl_7.9.2/lib/libcurl.so -lcrack -lbz2 -lz
-lcrypt -lssl -lcrypto -lresolv -lresolv -lresolv -lm -ldl -lnsl -lsocke
t -lsocket -lgcc -lcrypt -lc
ld: fatal: file /depot/lib/.libs/libsnmp.so: cannot open file: No such f
ile or directory
ld: fatal: File processing errors. No output written to .libs/libphp_jav
a.so
*** Error code 1
make: Fatal error: Command failed for target `libphp_java.la'
Current working directory /site4/web_kit_1.0_rodgers/php_4.1.1/ext/java
*** Error code 1
make: Fatal error: Command failed for target `all-recursive'
Current working directory /site4/web_kit_1.0_rodgers/php_4.1.1/ext/java
*** Error code 1
make: Fatal error: Command failed for target `all-recursive'
Current working directory /site4/web_kit_1.0_rodgers/php_4.1.1/ext
*** Error code 1
make: Fatal error: Command failed for target `all-recursive'
To summarize: we specified our local installation path for the UC Davis
SNMP package using: "--with-snmp=/depot/package/ucd-snmp_4.2.1".
We have a library file /depot/package/ucd-snmp_4.2.1/lib/libsnmp.so,
which is where we would expect the above option to point to -- but instead,
the build appears to be looking for the library in /depot/lib/.libs/.
Any ideas as to how to fix or work around this problem?
3) Which version of ming does PHP 4.1.1 actually use? We downloaded the latest
version of ming (0.2a), but when we try "make" in the top-level ming
directory (which tries to build a shared library), we got this error message:
gcc -g -Wall movie.o displaylist.o blocklist.o position.o movieclip.o
shape_util.o shape_cubic.o text_util.o fill.o ming.o actioncompiler/compile.o
actioncompiler/swf4compiler.tab.o actioncompiler/lex.swf4.o
actioncompiler/swf5compiler.tab.o actioncompiler/lex.swf5.o
actioncompiler/compileaction.o actioncompiler/assembler.o blocks/*.o -shared
-fpic \
-o libming.so
Text relocation remains referenced
against symbol offset in file
<unknown> 0x3120
actioncompiler/swf4compiler.tab.o
<unknown> 0x3124
[...]
When we entered the subdirectory ming/php_ext and tried to compile,
it complained about not finding the header file "tsrm_virtual_cwd.h".
We copied all the files under that sub-directory to the PHP source tree under
php_4.1.1/ext/ming/, then did "configure", first with the option
"--with-ming=/depot/package/ming_0.2a", and then again with the option
"--with-ming=./ext/ming", the PHP configuration gave this error message:
configure: error: Please reinstall libming.so - I cannot find libming.so
Neither the PHP nor ming documentation is clear about installation.
What is the correct way to install PHP with ming support?
4) The extensions mm, mnogosearch, pspell and yaz all (independently) cause
"multiply defined symbols" error messages during compilation. The options
we used in configuration were:
--with-mm=/depot/package/mm_1.1.3 \
--with-mnogosearch=/depot/package/mnogosearch_3.1.19/vendor \
--with-pspell=/depot/package/pspell_.12.2/vendor \
--with-yaz=/depot/package/yaz_1.8.4/vendor/bin
and the error messages looked like:
ld: fatal: symbol `odr_bool' is multiply-defined:
(file Zend/.libs/libZend.al(odr_bool.o) and file
/depot/package/yaz_1.8.4/vendor/lib/libyaz.a(odr_bool.o));
ld: fatal: symbol `ber_boolean' is multiply-defined:
(file Zend/.libs/libZend.al(ber_bool.o) and file
/depot/package/yaz_1.8.4/vendor/lib/libyaz.a(ber_bool.o));
[...]
/depot/package/pspell_.12.2/lib/libpspell.a(string_pair_emulation.o));
ld: fatal: symbol `_ZN22PspellCanHaveErrorImpl11reset_errorEv' is
multiply-defined:
(file Zend/.libs/libZend.al(error_impl.o) and file
/depot/package/pspell_.12.2/lib/libpspell.a(error_impl.o));
ld: fatal: symbol `_Z24new_pspell_manager_classP12PspellConfig' is
multiply-defined:
(file Zend/.libs/libZend.al(manager_impl.o) and file
/depot/package/pspell_.12.2/lib/libpspell.a(manager_impl.o));
[...]
ld: fatal: symbol `UdmAddParser' is multiply-defined:
(file Zend/.libs/libZend.al(parser.o) and file
/depot/package/mnogosearch_3.1.19/vendor/lib/libudmsearch.a(parser.o));
ld: fatal: symbol `UdmInsertAffix' is multiply-defined:
(file Zend/.libs/libZend.al(sql.o) and file
/depot/package/mnogosearch_3.1.19/vendor/lib/libudmsearch.a(sql.o));
Are those extensions still supported in php 4.1.1?
5) We installed the dmalloc 4.8.2 package on our system and tried to enable
dmalloc support in PHP using "--enable-dmalloc". The error we received
during compilation read:
In file included from
/depot/package/apache_1.3.22/vendor/include/ap_config.h:1160,
from /depot/package/apache_1.3.22/vendor/include/httpd.h:72,
from mod_php4.c:32:
/usr/include/memory.h:20: conflicting types for `_dmalloc_memccpy'
/depot/include/dmalloc.h:435: previous declaration of `_dmalloc_memccpy'
/usr/include/memory.h:35: conflicting types for `_dmalloc_memchr'
/depot/include/dmalloc.h:437: previous declaration of `_dmalloc_memchr'
/usr/include/memory.h:37: conflicting types for `_dmalloc_memcpy'
/depot/include/dmalloc.h:424: previous declaration of `_dmalloc_memcpy'
/usr/include/memory.h:38: conflicting types for `_dmalloc_memset'
/depot/include/dmalloc.h:426: previous declaration of `_dmalloc_memset'
*** Error code 1
make: Fatal error: Command failed for target `mod_php4.lo'
Current working directory /site4/web_kit_1.0_rodgers/php_4.1.1/sapi/apache
*** Error code 1
make: Fatal error: Command failed for target `all-recursive'
It appears that the Apache header file ap_config.h includes the *Solaris*
header file memory.h, which has definitions that conflict with those in
the dmalloc header file dmalloc.h. Any ideas about fixes or work-arounds
here?
6) We finally got PHP 4.1.1 configured and compiled (excluding the 7 troublesome
packages discussed above) with the following (42 or 43) options:
sh ./configure \
--prefix=/depot/package/php_4.1.1/vendor/ \
--with-apxs=/depot/package/apache_1.3.22/vendor/bin/apxs \
--enable-safe-mode \
--enable-discard-path \
--with-exec-dir=/depot/package/apache_1.3.22/vendor/php-bin \
--with-config-file-path=/depot/package/php_4.1.1 \
--with-openssl=/depot/package/openssl_0.9.6b/vendor \
--enable-libgcc \
--disable-short-tags \
--with-zlib=/depot/package/zlib_1.1.3 \
--enable-bcmath \
--with-bz2=/depot/package/bzip2_1.0.1 \
--enable-calendar \
--with-jpeg-dir=/depot/package/jpeg_6b \
--with-tiff-dir=/depot/package/tiff_3.5.5 \
--with-crack=/depot/package/cracklib_2.7/vendor \
--with-curl=/depot/package/curl_7.9.2 \
--with-gdbm=/depot/package/gdbm_1.8 \
--with-db3=/depot/package/berkeley_db_3.2.9 \
--with-dom=/depot/package/libxml_2.4.13/vendor \
--with-fribidi=/depot/package/fribidi_0.10.0 \
--enable-ftp \
--with-gd=/depot/package/gd_1.8.3 \
--with-png-dir=/depot/package/libpng_1.2.1 \
--with-xpm-dir=/depot/package/xpm_3.4k \
--with-imap=/site4/web_kit_1.0_rodgers/imap-2001a \
--with-freetype-dir=/depot/package/freetype_2.0.5 \
--with-t1lib=/depot/package/t1lib_1.1.1/vendor \
--with-gettext=/depot/package/gettext_0.10.40/vendor \
--with-iconv=/depot/package/libiconv_1.7/vendor \
--with-java=/usr/java \
--with-ldap=/depot/package/openLDAP_2.0.19/vendor \
--enable-mailparse \
--with-mcrypt=/depot/package/libmcrypt_2.4.19/vendor \
--with-mhash=/depot/package/mhash_0.8.13 \
--with-mysql=/depot/package/mysql_3.23.46 \
--with-ncurses=/depot/package/ncurses_5.2/vendor \
--with-pdflib=/depot/package/pdflib_4.0.1 \
--with-recode=/depot/package/recode_3.6/vendor \
--enable-wddx \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--with-xml \
--with-xmlrpc=/depot/package/xmlrpc-epi_0.50/vendor \
--enable-versioning \
--enable-debug
After doing a "make install" and uncommenting the following two lines in
the Apache httpd.conf file:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
we tried to restart the apache server with the PHP module. The server
failed to restart due to a segmentation fault. We have seen a similar report
from another group on the PHP Developer mailing list, but this group can't
remember the fix, seeming to think it might have been related to a linker
path variable
(http://marc.theaimsgroup.com/?l=php-dev&m=101234015100509&w=2).
No core file was produced, thus preventing us from obtaining debug
information via "gdb httpd". The gdb program gives this warning:
shared library handler failed to enable breakpoint,
Program received signal SIGILL, Illegal instruction
Any ideas about what is wrong with libphp4.so? Or strategies to obtain more
debug information?
Thanks in advance for any insights concerning the above problem list.
We hope it is of help in improving the package. Keep up the great work,
PHP developers!
Best Regards,
Rick Rodgers ([EMAIL PROTECTED])
Ziying Sherwin ([EMAIL PROTECTED])
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]