php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #17519 Undeclared 'phpext_ps_mm_ptr' in internal_functions{,_cli}.c
Submitted: 2002-05-30 03:39 UTC Modified: 2002-06-12 10:23 UTC
From: derekm at hackunix dot org Assigned:
Status: Closed Package: Compile Failure
PHP Version: 4.2.1 OS: Heavily modified Red Hat 6.2
Private report: No CVE-ID: None
 [2002-05-30 03:39 UTC] derekm at hackunix dot org
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.

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-05-30 06:22 UTC] derekm at hackunix dot org
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.
 [2002-06-12 10:23 UTC] sniper@php.net
This bug has been fixed in CVS. You can grab a snapshot of the
CVS version at http://snaps.php.net/. In case this was a documentation 
problem, the fix will show up soon at http://www.php.net/manual/.
In case this was a PHP.net website problem, the change will show
up on the PHP.net site and on the mirror sites.
Thank you for the report, and for helping us make PHP better.


 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Fri Aug 15 14:00:03 2025 UTC