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: Re: Static link (MSVC), alteration proposal

On Thu, 2005-03-31 at 10:42 +0300, Dimitar Panayotov wrote:
> > Hi,
> > Thanks for the changes and the explanations. They
> > certainly fill a gap.
> Hello, Ross, and thank you for your detailed attention you
> attested.
> > The PTW32_BUILD conditional was added by me. I've never
> > built the
> > library statically, and don't test this side of things.
> > This is because
> > the library is essentially designed for dynamic linking
> No, PTW32 is written very clever.

Much has been added or modified since John Bossom contributed his
original version of the library, but a fundamental design feature from
that version that has been kept is the ability of Win32 threads to call
POSIX routines, and thus become pseudo POSIX threads. This requires some
behind-the-scene work to manage, and it's important that cleaning up be
done when these threads exit, or the process exits. For this to be
seamless and transparent to an application that uses the library ideally
requires the dllMain feature.

> 1. Since the sources are written in a way which relies on
> the headers to determine the type of linkage of all the
> PTW32 functions, then actually everything is up to the
> headers.
> 2. Since all the sources are combined in single one --
> <pthread.c>, things are quite easy, because you only need
> to add <pthread.c> to your project (or give to it a
> separate entry in the Makefile), it will be compiled, and
> then pthread.obj will be included in the final link, and
> that's it.
Yes, you can do that. This was how John's original version was
presented. Then I split the routines out into separate modules so that a
static library could be built such that any static linking exe could
include only those routines it needed (for embedded applications). But
apparently all of the target compilers include options to do this
automatically anyway. The monolithic pthread.c file is intended
primarily to reassemble all of the modules into a single compilation
unit in an attempt to maximise inlining of functions within the library.

> I admit that the style of the people who have written PTW32,
> is professional.

All of the contributions to the library have been absolutely awesome.


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