X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Date: Wed, 16 Mar 2011 20:54:59 +0100 From: Corinna Vinschen To: cygwin AT cygwin DOT com Subject: Re: Calling sem_wait() in DllMain( DLL_THREAD_DETACH) crashes Message-ID: <20110316195459.GA31084@calimero.vinschen.de> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <4D7FB133 DOT 7030301 AT dronecode DOT org DOT uk> <20110315190733 DOT GA23825 AT ednor DOT casa DOT cgf DOT cx> <4D7FC59F DOT 6030901 AT cwilson DOT fastmail DOT fm> <20110315202816 DOT GA8747 AT ednor DOT casa DOT cgf DOT cx> <4D7FD12F DOT 1000200 AT dronecode DOT org DOT uk> <20110316100022 DOT GA26391 AT calimero DOT vinschen DOT de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20110316100022.GA26391@calimero.vinschen.de> User-Agent: Mutt/1.5.21 (2010-09-15) Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On Mar 16 11:00, Corinna Vinschen wrote: > On Mar 15 20:50, Jon TURNEY wrote: > > I did read through the UG looking for a statement like that, but the only > > thing I found was the caveat about mixing POSIX and Win32 calls to set cwd. > > Perhaps I overlooked something, or maybe it would be good if that was more > > clearly documented. > > > > >> However, it does seem that python (or one of its extensions) is doing > > >> something it shouldn't. > > > > Given the above clarification about cygwin, this is a bug in libcrypto from > > OpenSSL (which tries to be portable to more than just POSIX, and has a > > DllMain() which is built for both cygwin and Win32), and a patch like that at > > [1] (or perhaps one which avoids DllMain on cygwin entirely) should be applied. > > Thanks for the information. I will look into getting rid of DllMain. > Just like in libiconv, there's no good reason to use this function in > a shared lib for Cygwin. Well, I have to take that back. The DLL_PROCESS_ATTACH case in openssl's DllMain function is important to maintain FIPS compatibility. So it seems the right thing to do is to remove the ERR_remove_state() call in the DLL_THREAD_DETACH case. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple