On Oct 27, 2006, at 1:07 PM, Michael B Allen wrote:
On Fri, 27 Oct 2006 12:12:46 -0400
"Brian J. France" <[EMAIL PROTECTED]> wrote:

On Oct 27, 2006, at 11:57 AM, Michael B Allen wrote:
Is there any way to determine exactly which version of PHP first
used the
RTLD_DEEPBIND flag to dlopen(3)? Can webcvs be used somehow. I *think*
it's between 4.3 and 4.4 but I'm not sure.

4.4:

http://cvs.php.net/viewvc.cgi/Zend/zend.h?view=log&pathrev=PHP_4_4

and

5.1:

http://cvs.php.net/viewvc.cgi/ZendEngine2/zend.h?
view=log&pathrev=PHP_5_1

and I plan on removing it from our internal builds as it causes more
problems than I think it fixes (on RHEL only).

Err, that'll break my module.


Unless you work at Yahoo!, this will not effect you (our internal builds == Y!). If you do work at Y! we should take this talk onto our internal mailing lists.

Also your module is busted on any platform that doesn't support RTLD_DEEPBIND, like FreeBSD.


My module is linked with Heimdal kerberos. I need Heimdal because it
has proper support for SPNEGO (amnong other reasons). But if PHP or
any other module is linked with a different Kerberos library (e.g. MIT) symbol collisions will occur resulting in all sorts of strange behavior.


Could you do the php_compat.h trick and namesapce functions and link it statically? This is what PHP does for things like pcre and gd.


If you are going to remove RTLD_DEEPBIND, can you recommend an alternative method for linking a module so that said symbol collisions do not result?

What problems are you seeing with RTLD_DEEPBIND?

Perhaps it could be an extension specific ini option like:

  extension = mymodule.so:RTLD_DEEPBIND

or

  extension.deepbind = mymodule.so


Ya, I think the extension.deepbind would be a good options (if I had time to work on it).

Brian

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to