Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:14426 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 40032 invoked by uid 1010); 25 Jan 2005 01:41:52 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 39726 invoked from network); 25 Jan 2005 01:41:51 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 25 Jan 2005 01:41:51 -0000 X-Host-Fingerprint: 195.197.172.115 gw01.mail.saunalahti.fi Linux 2.4/2.6 Received: from ([195.197.172.115:37651] helo=gw01.mail.saunalahti.fi) by pb1.pair.com (ecelerity HEAD (r4105:4106)) with SMTP id 6D/D7-32068-ED3A5F14 for ; Mon, 24 Jan 2005 20:41:50 -0500 Received: from localhost.localdomain (YZCLXVIII.dsl.saunalahti.fi [85.76.34.69]) by gw01.mail.saunalahti.fi (Postfix) with ESMTP id 0E9BDBFAB0; Tue, 25 Jan 2005 03:41:46 +0200 (EET) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by localhost.localdomain (8.12.8/8.12.8) with ESMTP id j0P1fecu014762; Tue, 25 Jan 2005 03:41:40 +0200 Received: from localhost (jani@localhost) by localhost.localdomain (8.12.8/8.12.8/Submit) with ESMTP id j0P1feG5014758; Tue, 25 Jan 2005 03:41:40 +0200 X-Authentication-Warning: localhost.localdomain: jani owned process doing -bs Date: Tue, 25 Jan 2005 03:41:40 +0200 (EET) Reply-To: Jani Taskinen To: Joe Orton Cc: internals@lists.php.net In-Reply-To: <20050124165957.GA10801@redhat.com> Message-ID: References: <20050124165957.GA10801@redhat.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Subject: Re: [PHP-DEV] [PATCH] Zend dlopen flag for new glibc From: sniper@iki.fi (Jani Taskinen) Just commit.. --Jani On Mon, 24 Jan 2005, Joe Orton wrote: > [ping] > > New versions of glibc support a RTLD_DEEPBIND flag to dlopen. The > effect of this flag when loading a "foo.so" with undefined symbols is > that the search that symbol starts at foo.so and its dependencies > *before* the loading process' global symbol table. > > This is an effective workaround for symbol namespace collisions between > various modules and the libraries on which they depend (where fixing the > respective modules or libraries is not possible e.g. due to API > constraints). > > Index: Zend/zend.h > =================================================================== > RCS file: /repository/ZendEngine2/zend.h,v > retrieving revision 1.268 > diff -u -r1.268 zend.h > --- Zend/zend.h 10 Jan 2005 21:57:30 -0000 1.268 > +++ Zend/zend.h 12 Jan 2005 11:34:03 -0000 > @@ -104,6 +104,8 @@ > > # 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) > +# elif defined(RTLD_DEEPBIND) > +# define DL_LOAD(libname) dlopen(libname, RTLD_LAZY | RTLD_GLOBAL | RTLD_DEEPBIND) > # else > # define DL_LOAD(libname) dlopen(libname, RTLD_LAZY | RTLD_GLOBAL) > # endif > >