ID:               17519
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
 Status:           Open
 Bug Type:         Compile Failure
 Operating System: Heavily modified Red Hat 6.2
 PHP Version:      4.2.1
 New Comment:

The fixes that I outlined here allowed PHP 4 to compile, when when I
went to start Apache, I got the following error:

Syntax error on line 248 of /usr/local/etc/httpd/httpd.conf:
Cannot load /usr/local/libexec/libphp4.so into server:
/usr/local/libexec/libphp4.so: undefined symbol: php_session_mm_module

It did some playing around with my original 'configure' options, and I
changed '--with-mm=shared' to '--with-mm'.  That change has made PHP
compile without errors so far.  However, at this point, I'm still
waiting for compilation to complete.  I'll post another comment if I
run into more problems--otherwise, if I don't post here again, assume
all is well.


Previous Comments:
------------------------------------------------------------------------

[2002-05-30 03:39:56] [EMAIL PROTECTED]

I'm compiling PHP 4.2.1 with:

./configure --with-config-file-path=/usr/local/etc \
--with-layout=GNU \
--with-apxs=/usr/local/sbin/apxs \
--enable-dependency-tracking \
--with-openssl=shared \
--enable-libgcc=shared \
--with-zlib-dir=/usr \
--with-zlib=shared \
--with-aspell=/usr \
--enable-bcmath=shared \
--with-bz2=shared \
--enable-calendar=shared \
--with-crack=shared \
--with-curl=shared \
--enable-dba=shared \
--with-gdbm=shared \
--with-ndbm=shared \
--with-db2=shared \
--with-db3=shared \
--enable-dbase=shared \
--enable-dbx=shared \
--enable-dio=shared \
--with-dom=shared \
--with-dom-xslt=shared \
--with-dom-exslt=shared \
--enable-exif=shared \
--enable-filepro=shared \
--enable-ftp=shared \
--with-tiff-dir=/usr \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-xpm-dir=/usr/X11R6 \
--with-freetype-dir=/usr \
--with-gd=shared,/usr/gd-with_gif/ \
--enable-gd-native-ttf=shared \
--with-gettext=shared \
--with-gmp=shared \
--with-icap=shared \
--with-iconv=shared \
--with-imap=shared \
--with-kerberos \
--with-imap-ssl \
--with-java=/usr/java/j2sdk1.4.0 \
--with-ldap=shared \
--enable-mbstring=shared \
--enable-mbstr-enc-trans \
--enable-mbregex \
--with-mcal=shared \
--with-mcrypt=shared \
--with-mhash=shared \
--with-pdflib=shared \
--with-pgsql=shared \
--with-pspell=shared \
--with-recode=shared \
--with-mm=shared \
--enable-shmop=shared \
--enable-sockets=shared \
--with-regex=php \
--enable-sysvsem=shared \
--enable-sysvshm=shared \
--enable-tokenizer=shared \
--enable-wddx=shared \
--with-xmlrpc=shared \
--enable-xslt=shared \
--with-xslt-sablot=shared,/usr \
--with-expat-dir=/usr \
--with-sablot-js=shared,/usr \
--enable-yp=shared \
--with-zip=shared \
--enable-versioning=shared \
--enable-shared=shared \
--enable-inline-optimization=shared \
--enable-memory-limit=shared

I added '=shared' to so many of the options because the compile
documentation sucks my left testicle, and it was faster to add
'=shared' to a bunch of the options than read through the 'configure'
script for hours to determine which options are actually affected by
'=shared'.

Anyways, the 'configure' script completed successfully, and I went
ahead with 'make'.  After a few minutes, I got this error:

internal_functions.c:53: `phpext_ps_mm_ptr' undeclared here (not in a
function)
internal_functions.c:53: initializer element is not constant
internal_functions.c:53: (near initialization for
`php_builtin_extensions[9]')

I examined 'main/internal_functions.c' and found this:

zend_module_entry *php_builtin_extensions[] = {
        phpext_xmlrpc_ptr,
        phpext_xml_ptr,
        phpext_standard_ptr,
        phpext_posix_ptr,
        phpext_pcre_ptr,
        phpext_openssl_ptr,
        phpext_mysql_ptr,
        phpext_ctype_ptr,
        phpext_aspell_ptr,
 phpext_ps_mm_ptr,
};

First, just to try, I cleaned up the code, removing that trailing comma
after 'phpext_ps_mm_ptr'.  But, as I suspected, that did nothing.

Then I noticed all the #INCLUDEs just above the declaration for
'php_builtin_extensions[]', noticing that they tended to correspond
with the elements of 'php_builtin_extensions[]'.  So I determined to
find in which header file 'phpext_ps_mm_ptr' was being defined with
'grep -r phpext_ps_mm_ptr *'.

I found it being defined in 'ext/session/mod_mm.h'; which, for some
reason or another, wasn't be #INCLUDEd in 'main/internal_functions.c'. 
So I added the following line:

#include "ext/session/mod_mm.h"

Running 'make' again, 'main/internal_functions.c' compiled just fine. 
Except now 'main/internal_functions_cli.c' failed compilation with the
same error--and, consequently, the same fix.

Anyways, that's it.

------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=17519&edit=1

Reply via email to