The win32 build will correctly order extensions for internal_functions.c,
so that solves static compiles, but that doesn't help dynamic loading
(nor the unix build).
Would it be ok to keep Marcus' function so that a wise extension can check
if things were loaded in the correct order?
Maybe adjust it a little:
ZEND_API int zend_check_dependent_modules(char *mymodule, int num_modules,
...)
{
va_list ap;
char *module_name;
int i;
zend_module_entry *module;
va_start(ap, num_modules);
for (i = 0; i < num_modules; i++) {
module_name = va_arg(ap, char*);
if (FAILURE == zend_hash_find(&module_registry, module_name,
strlen(module_name)+1, (void**)&module) ||
!module->module_started) {
zend_error(E_ERROR, "extension `%s' must be loaded before %s",
module_name, mymodule);
}
}
va_end(ap);
return SUCCESS;
}
Even better would be to add an array of module names into the module
structure and have the ZE apply this check when it loads the module.
I think that it is reasonably important to warn the user that things
will break if we can detect it.
--Wez.
----- Original Message -----
From: "Andi Gutmans" <[EMAIL PROTECTED]>
To: "Marcus Boerger" <[EMAIL PROTECTED]>
Cc: "Marcus Boerger" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Sent: Monday, January 19, 2004 8:40 AM
Subject: Re: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend_API.c
> At 09:34 AM 1/19/2004 +0100, Marcus Boerger wrote:
> >Hello Andi,
> >
> >Monday, January 19, 2004, 9:29:50 AM, you wrote:
> >
> > > Marcus,
> >
> > > This is something for autoconf and not for run-time. I see no reason
for
> > > this hack!
> > > Similar things have been done like this in the past.
> > > Andi
> >
> >Wouldn't autoconf not only change the order of compiling?
>
> No. Check out main/internal_functions.c. That's the order extensions are
> loaded.
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php