This is the mail archive of the
pthreads-win32@sources.redhat.com
mailing list for the pthreas-win32 project.
Re: static link last build issue & question
- From: Ross Johnson <rpj at callisto dot canberra dot edu dot au>
- To: Pthreads-Win32 list <pthreads-win32 at sources dot redhat dot com>
- Date: Wed, 13 Apr 2005 01:46:00 +1000
- Subject: Re: static link last build issue & question
- References: <1113319690.fae3b25d4c132@mail.bg>
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?
Hi,
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
> develop@mail.bg
> +359886420488
>
>
> --------------------------------------
> ÐÐÐÐÐÐÑÐÐÑÐ ÐÐÑÐ Ð mail.bg ÐÐÑÐ Ð 1GB!
>
>