[CMake] Updated FindThreads.cmake in tracker

Philip Lowman philip at yhbt.com
Sun Sep 20 19:32:21 EDT 2009


On Sun, Sep 20, 2009 at 3:02 PM, Hendrik Sattler <post at hendrik-sattler.de>wrote:

> Am Sonntag 20 September 2009 17:16:19 schrieb Philip Lowman:
> > Hello,
> >
> > I've merged (optional) Pthreads-win32 support into a FindThreads.cmake
> > attached in the tracker and added some documentation on how to use it.
> > Since FindThreads isn't my module I wanted to throw this up on the
> mailing
> > list for feedback.
> >
> > http://www.cmake.org/Bug/view.php?id=6399
> >
> >
> > Also, in regard to a previous mailing list thread about FindThreads...
> >
> > I'm not sure which platform the block "Check if compiler accepts
> -pthread"
> > is executed on.  The documentation I attached to the code advises calling
> > "target_link_libraries(target ${CMAKE_THREAD_LIBS_INIT})".  After
> grokking
> > the code a bit further I'm now guessing this "-pthread" argument is
> > technically accepted by the linker and not needed by the compiler, but it
> > would be nice to know this for sure to ensure the documentation is
> correct.
>
> gcc says:
> -pthread
>           Adds support for multithreading with the pthreads library.  This
>           option sets flags for both the preprocessor and linker.
>
> So it may work to only use it during linking but this may cause subtle
> failure
> on some platforms.
>
> When writing FindThreads.cmake, it would be better to really rewrite it and
> use the common naming standards for cmake modules.
>

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?

-- 
Philip Lowman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20090920/9edab966/attachment-0001.htm>


More information about the CMake mailing list