[CMake] Updated FindThreads.cmake in tracker

Philip Lowman philip at yhbt.com
Mon Sep 21 23:25:14 EDT 2009


On Mon, Sep 21, 2009 at 6:07 AM, Marcel Loose <loose at astron.nl> wrote:

> On Sun, 2009-09-20 at 19:32 -0400, Philip Lowman wrote:
> > On Sun, Sep 20, 2009 at 3:02 PM, Hendrik Sattler
> >
> > I'm hesitant to rewrite anything that works, especially if it works on
> > platforms I don't have access too. :)
> >
> > Include & library variables probably could be added if it can be done
> > in a safe way with the compile checks already in place.
> >
> > Not sure on -pthread, we've never added it to our gcc command lines
> > before.  Looking at the man page, it's only a compile flag under
> > IA-64, RS-6000, PPC, and SPARC.  Would recommending people add it to
> > their compiler flags and only rely on the output of
> > ${CMAKE_THREAD_LIBS_INIT} for linking be the right thing to do?
>
> Hmm, don't know if the documentation is correct.
>
> I tested this on Linux x86_64 (gcc 4.3) and on an old i686 (gcc 3.2). On
> both systems, when I diff the output of 'gcc -E -dM' and 'gcc -E -dM
> -pthread' I get '#define _REENTRANT 1'.
>
> So, -pthread clearly defines an extra preprocessor variable.
>

We've always defined _REENTRANT manually and specified -lpthread but looking
into this further I'm guessing we're just getting lucky since we've never
built on platforms where this doesn't work.

http://stackoverflow.com/questions/875789/gcc-do-i-need-dreentrant-with-pthreads

Also regarding the lack of a global -pthread in the docs, this post was kind
of illuminating.

http://lists.freebsd.org/pipermail/freebsd-threads/2003-September/001202.html

So the gist of it is, if your only Unix compiler is gcc and if you add
"-pthread" to your CMAKE_C_FLAGS/CMAKE_CXX_FLAGS you really have no need for
FindThreads at all, as far as I can tell.

-- 
Philip Lowman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20090921/95be46a3/attachment.htm>


More information about the CMake mailing list