I've defined a few macros to help with module/request init/startup function definitions.
Basically:
PHP_MINIT_FUNCTION(module)
PHP_MSHUTDOWN_FUNCTION(module)
PHP_RINIT_FUNCTION(module)
PHP_RSHUTDOWN_FUNCTION(module)
PHP_MINFO_FUNCTION(module)
These will expand to proper function prototypes.
Now to specify these in the module entry, use:
PHP_MINIT(module)
PHP_MSHUTDOWN(module)
PHP_RINIT(module)
PHP_RSHUTDOWN(module)
PHP_MINFO(module)
I've updated all modules in ext/standard and everything from ext/apache to ext/db.
If you can, please update your module to use these macros.
Examples on how to test:
./configure --with-xml static
./configure --with-xml=/opt static
./configure --with-xml=shared shared
./configure --with-xml=shared,/opt shared
The difference between these two is that when the extension is shared, it
is not merged into libphpext.a. The shared extension is currently always
built. I can't find a way to do just one or the other with automake/libtool,
if someone has a clever idea, please come forward. :-)
"make install" installs the .so (as well as a lot of other cruft) in
$prefix/lib/php.
* hand-patched in php3 changes from 3.0.6 to HEAD in these files:
fopen-wrappers.[ch] ext/standard/file.[ch] ext/standard/fsock.[ch]
ext/standard/php3_string.h ext/standard/string.c
* added some new file/socket macros for more readable code:
FP_FGETS(buf,len,sock,fp,issock)
FP_FREAD(buf,len,sock,fp,issock)
FP_FEOF(sock,fp,issock)
FP_FGETC(sock,fp,issock)
* Make some renames in the session module - avoid having a function called 'delete'
so that we don't piss any C++ compilers. Also rename the {startup,shutdown}_globals
to {startup,shutdown}_session_globals, so that they're a bit less general names,
and made them static.
* Remove uselss variables