Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:26269 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 98041 invoked by uid 1010); 27 Oct 2006 17:40:22 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 98025 invoked from network); 27 Oct 2006 17:40:22 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 27 Oct 2006 17:40:22 -0000 Authentication-Results: pb1.pair.com header.from=list@firehawksystems.com; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=list@firehawksystems.com; spf=permerror; sender-id=unknown Received-SPF: error (pb1.pair.com: domain firehawksystems.com from 204.11.219.140 cause and error) X-PHP-List-Original-Sender: list@firehawksystems.com X-Host-Fingerprint: 204.11.219.140 ls6.firehawksystems.com Received: from [204.11.219.140] ([204.11.219.140:49569] helo=ls6.firehawksystems.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id AE/84-05529-F7442454 for ; Fri, 27 Oct 2006 13:40:17 -0400 Received: from [10.0.0.2] (adsl-75-46-85-78.dsl.ipltin.sbcglobal.net [75.46.85.78]) (authenticated bits=0) by ls6.firehawksystems.com (8.13.8/8.13.8) with ESMTP id k9RHdtfJ083261 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Fri, 27 Oct 2006 10:39:56 -0700 (PDT) In-Reply-To: <20061027130742.1cf61793.mba2000@ioplex.com> References: <20061027115704.5160b509.mba2000@ioplex.com> <3F51F1DD-7B25-4302-975A-2F8E276D5EC9@firehawksystems.com> <20061027130742.1cf61793.mba2000@ioplex.com> Mime-Version: 1.0 (Apple Message framework v752.2) Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Message-ID: <0CA0FB51-5A14-4D6D-96B2-98C5D7C84A41@firehawksystems.com> Cc: internals@lists.php.net Content-Transfer-Encoding: 7bit Date: Fri, 27 Oct 2006 13:39:53 -0400 To: Michael B Allen X-Mailer: Apple Mail (2.752.2) X-Virus-Scanned: ClamAV version 0.88.4, clamav-milter version 0.88.4 on ls6.firehawksystems.com X-Virus-Status: Clean X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_82 autolearn=no version=3.1.1 X-Spam-Checker-Version: SpamAssassin 3.1.1 (2006-03-10) on ls6.firehawksystems.com Subject: Re: [PHP-DEV] What version introduced RTLD_DEEPBIND? From: list@firehawksystems.com ("Brian J. France") On Oct 27, 2006, at 1:07 PM, Michael B Allen wrote: > On Fri, 27 Oct 2006 12:12:46 -0400 > "Brian J. France" 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