#24582 [NoF->Opn]: Extensions cannot be loaded dynamically on Solaris / iPlanet

From: Date: Thu, 31 Jul 2003 19:07:01 +0000
Subject: #24582 [NoF->Opn]: Extensions cannot be loaded dynamically on Solaris / iPlanet
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-45134@lists.php.net to get a copy of this message
 ID:               24582
 User updated by:  CVKEWCZBUTBW at spammotel dot com
 Reported By:      CVKEWCZBUTBW at spammotel dot com
-Status:           No Feedback
+Status:           Open
 Bug Type:         Zend Engine 2 problem
 Operating System: Solaris
 PHP Version:      5.0.0b2-dev, 4.3.3RC2-dev
 New Comment:

Yes, the patch I provided in my July 10 posting fixes the bug for
Solaris.
My July 11 posting proposes a modified patch which is more portable,
esp. it does not break compilation in a Linux environment.


Previous Comments:
------------------------------------------------------------------------

[2003-07-30 22:09:03] sniper@php.net

No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Open". Thank you.



------------------------------------------------------------------------

[2003-07-24 15:10:42] sniper@php.net

Does the patch you provided fix the bug for you or not?
(I have no solaris access to test it with..)


------------------------------------------------------------------------

[2003-07-11 11:01:53] sniper@php.net

So does that fix this bug for you..?


------------------------------------------------------------------------

[2003-07-11 03:54:41] CVKEWCZBUTBW at spammotel dot com

> Also, according to Solaris man page for dlopen(),
> (if I read it correctly :), RTLD_GROUP and RTLD_WORLD
> are on by default anyway. So only option needed is
> RTLD_PARENT.
> Could you try that only?

The man page is not really clear about that. I understand that if you
set NONE of the three flags, then "GROUP|WORLD" takes effect. So if you
want all three flags, you have to specify "GROUP|WORLD|PARENT".

I have no easy way to try it. I'd propose:

#if defined(RTLD_GROUP) && defined(RTLD_WORLD) && defined(RTLD_PARENT)
#define DL_LOAD(libname) dlopen(libname, RTLD_LAZY | RTLD_GLOBAL |
RTLD_GROUP | RTLD_WORLD | RTLD_PARENT)
#else
#define DL_LOAD(libname) dlopen(libname, RTLD_LAZY | RTLD_GLOBAL)
#endif

------------------------------------------------------------------------

[2003-07-10 10:50:47] sniper@php.net

We could also add those 3 extra ones always though if they just are
defined..:)


------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/24582

-- 
Edit this bug report at http://bugs.php.net/?id=24582&edit=1



Thread (10 messages)

« previous php.bugs (#45134) next »