Does static library works ?

John E. Bossom drifting@pioneerwireless.ca
Fri Feb 6 13:06:00 GMT 2009


The mechanisms of the pthreads library where originally written to  
take advantage of the Windows DllMain for implicitly  
creating/releasing resources.
However, some didn't want to use the DLL... therefore the implicit  
creation/destruction of resources (as well as the implicit invocation  
of TSD optional destructors) must be carried out explicitly by the  
user in the event that they want to use a static library. These  
methods are _np (non portable).

I would have expected that the test cases would have been  
conditionally compiled to accommodate the testing of the static  
version of the library...

John E. Bossom

Quoting Arnaud RICHARD <arnaud.richard@st.com>:

> I have tried with MinGW.
> It doesn't pass either. (but pass in dynamic of course).
> So it is not due to something specific to MSVC.
>
> Looking more closely... I found out than some functions must be called
> only when linking statically:
> pthread_win32_process_attach_np()
> pthread_win32_process_detach_np()
> pthread_win32_thread_attach_np()
> pthread_win32_thread_detach_np()
>
> There is some explanations in the file README.NONPORTABLE
>
> It's the first time ever  I see code specific to static linking...
> maybe because I'm a newbie on MS platform.
> I post this solution for future
>
> Arnaud
>
>> Arnaud RICHARD <arnaud.richard@st.com> wrote:
>>
>>> Dear developers,
>>>
>>> I tried to build my program statically with pthreads.lib.
>>> It crash at run-time in "pthread_cond_init()".
>>> So I tried to run the tests.
>>> First surprise: the test suite only run with DLL, and not with .LIB.
>>> I have enhanced the makefile to run the tests in static.
>>> Second surprise: most tests fails (but not all).
>>>
>>> Has anyone tried to do it ?
>>> I attached the modified makefile, the target to run is "make clean
>>> VC-static"
>>>
>>> Any feedback welcome,
>>> Arnaud
>>>
>>> PS: I use MSVC2008, and compile "VC-static"
>>>
>>>
>>>




More information about the Pthreads-win32 mailing list