C:\sandbox\php5\Zend>grep -l -drecurse "HAVE_LIBDL" *.*
ChangeLog
zend.h
Zend.m4
zend_API.c
zend_config.nw.h
zend_config.w32.h
Zend assumes Windows builds don't have HAVE_LIBDL defined. PHP - which only
uses it in dl.c - assumes they do, and sets it during win32 config.
ZEND_MODULE_DTOR - used in the module_registry hash - is defined as
module_destructor(), which lives in zend_API.c and contains the following
block.
#if HAVE_LIBDL || defined(HAVE_MACH_O_DYLD_H)
#if !(defined(NETWARE) && defined(APACHE_1_BUILD))
if (module->handle) {
DL_UNLOAD(module->handle);
}
#endif
#endif
So PHP-GTK's 'crime' is that it includes zend_API.h. Nice, eh?
A better fix for Dmitry's initial win32 memory-setting issue would be to
kill the HAVE_LIBDL line in config.w32.h.in (or replace it with #undef) and
alter dl.c to deal with PHP_WIN32 directly.
Dmitry, if you want to go through Zend's codebase and check the side-effects
of every single setting in config.w32.h.in that wasn't in zend_config.w32.h
before March 14th, that's groovy. But be warned, it takes a long time to
test them...!
- Steph
----- Original Message -----
From: "Steph Fox" <[EMAIL PROTECTED]>
To: "Xuefer" <[EMAIL PROTECTED]>; "Andi Gutmans" <[EMAIL PROTECTED]>
Cc: "internals" <internals@lists.php.net>
Sent: Wednesday, May 31, 2006 9:28 AM
Subject: Re: [PHP-DEV] tsrm_shutdown() and the CLI SAPI
Fixing the config so that ZE doesn't think it's PHP might actually make
Zend more stable too...
I think I _know_ why other extension people are seeing a crash on
ts_free_id(), but my biggest priority at present is getting the PHP-GTK
crash out of the way.
- Steph
Without looking to deeply into this reincarnation my guess would be that
for CLI, Zeev's approach makes good sense.
Andi
At 08:04 PM 5/27/2006, Steph Fox wrote:
Thanks Xuefer...
This bug's been extant for a long time, and I only found out why when I
spent two days/nights trying to track down its history and mechanics.
It's a pig.
- Steph
----- Original Message ----- From: "Xuefer" <[EMAIL PROTECTED]>
To: "Steph Fox" <[EMAIL PROTECTED]>
Cc: "internals" <internals@lists.php.net>
Sent: Sunday, May 28, 2006 4:58 AM
Subject: Re: [PHP-DEV] tsrm_shutdown() and the CLI SAPI
i can confirm this on other extension.
something like this
grep free_id */*.c -B1 -A3
mbstring/mbstring.c-#ifdef ZTS
mbstring/mbstring.c: ts_free_id(mbstring_globals_id);
mbstring/mbstring.c-#else
mbstring/mbstring.c- _php_mb_globals_dtor(&mbstring_globals
TSRMLS_CC);
mbstring/mbstring.c-#endif
have no problem with it
while some modules like
$ grep 'ndef ZTS' */*.c -A2
apc/php_apc.c:#ifndef ZTS
apc/php_apc.c- php_apc_shutdown_globals(&apc_globals);
apc/php_apc.c-#endif
-
eaccelerator/eaccelerator.c:#ifndef ZTS
eaccelerator/eaccelerator.c-
eaccelerator_globals_dtor(&eaccelerator_globals TSRMLS_CC);
eaccelerator/eaccelerator.c-#endif
when compiled as shared module, will crash
eaccelerator(mmcache) workaround it by disabling the dtor.
/*??? FIXME
ZEND_INIT_MODULE_GLOBALS(eaccelerator, eaccelerator_init_globals,
eaccelerator_globals_dtor);
*/
ZEND_INIT_MODULE_GLOBALS(eaccelerator, eaccelerator_init_globals,
NULL);
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php
__________ NOD32 1.1380 (20060125) Information __________
This message was checked by NOD32 antivirus system.
http://www.eset.com
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php
__________ NOD32 1.1380 (20060125) Information __________
This message was checked by NOD32 antivirus system.
http://www.eset.com
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php