This is the mail archive of the mailing list for the pthreas-win32 project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: static link last build issue & question

On Tue, 2005-04-12 at 18:28 +0300, Dimitar Panayotov wrote:
> Hello. I guess you have much more important issues to solve
> in PTW32, but may I remind of one small alteration, which
> seem to be not spotted in my preceding post?


I didn't miss it. I just did it another way. The dll.c module is
included in the build but the entire content of dll.c is skipped when
building the static library. I thought it would be better to excise the
code itself. Is that causing a problem for you?

> When linking statically, <dll.c> must not be included in
> <pthread.c> since it is possible you to build a DLL which
> you want to be statically linked to PTW32, in which case
> your DllMain() will conflict with the PTW32's DllMain().
> So, in <pthread.c>, instead of:
> #include "dll.c"
> the code must be:
> #ifndef PTW32_STATIC_LIB
> #include "dll.c"
> #endif
> This will avoid link-time error I mentioned above.
> (Note that the static link method I use is to include
> <pthread.c> in my project or in the Makefile so that it
> will be built with the PTW32_STATIC_LIB macro being
> defined, and the object file -- included in the final
> link.)
> And, because of the obscurity of the statement
> [pthread_win32_thread_attach_np() is currently a no-op, but
> thread_win32_thread_detach_np() is needed to clean up the
> implicit pthread handle that is allocated to a Win32 thread
> if it calls certain pthreads routines] (found in
> README.NONPORTABLE), I have the following questions:
> Can we be supplied with a list of those routines, calling of
> which will make it compulsory for the WIN32 thread to call
> "pthread_win32_thread_detach_np()" when it exits? And, if
> not, is it safe always to call
> "pthread_win32_thread_detach_np()" even if no PTW32 API is
> used in it?

It should be safe to call phread_win32_thread_detach_np() even if no
POSIX routines have been called. For instance, I imagine, since you're
project is a dll, you could call these attach/detach routines from your
own dllMain switch.

> Thank you.
> -
> Dimitar Panayotov
> +359886420488
> --------------------------------------

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]