Bug with dlopen() and fork()

Corinna Vinschen corinna-cygwin@cygwin.com
Thu Feb 20 15:01:00 GMT 2014


On Feb 20 14:16, Jaime Fabregas Fernandez wrote:
> Hello Corinna,
> 
> As you've checked, this behaviour doesn't appear with dll's created by
> gcc, but it does with Visual Studio C++.
> That minimal example compiled with VS will result in the freeze of the
> child process.
> 
> ================ testlib.h ======================
> #ifdef TESTLIB_EXPORTS
> #define TEST_API extern "C" __declspec(dllexport)
> #else
> #define TEST_API extern "C" __declspec(dllimport)
> #endif
> 
> TEST_API  int  mylib_open (const char *foo);
> =============================================
> 
> =============== testlib.cpp ======================
> #include "stdafx.h"
> #include "testLib.h"
> 
>   int
>   mylib_open (const char *foo)
>   {
>     return 1;
>   }
> ==============================================
> 
> I've tested several compiler and linker options with same result.
> 
> Any ideas?

Using MS DLLs across fork in this way is unsupported.  If you get it
working, you're just lucky.


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin/attachments/20140220/12608b60/attachment.sig>


More information about the Cygwin mailing list