[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 0/2] Stop using CMAKE_HAVE_THREADS_LIBRARY in the build system
[Thread Prev] | [Thread Next]
- Subject: Re: [PATCH v2 0/2] Stop using CMAKE_HAVE_THREADS_LIBRARY in the build system
- From: Raphael Kubo da Costa <rakuco@xxxxxxxxxxx>
- Reply-to: libssh@xxxxxxxxxx
- Date: Thu, 06 Feb 2014 01:10:20 +0200
- To: libssh@xxxxxxxxxx
Aris Adamantiadis <aris@xxxxxxxxxxxx> writes: > Hi Raphael, > > I noticed your patch breaks compilation on macosx: Oh, I didn't even know my patch series had been merged :-) > 4e04ec8bf57bdb27ceb84867e04105b2820d3e1f is the first bad commit > Author: Raphael Kubo da Costa <rakuco@xxxxxxxxxxx> > Date: Mon Feb 3 12:58:37 2014 +0200 > threads: Be less strict when deciding whether to build > libssh_threads. > (according to git bisect) I don't have access to an OS X system to test this myself, but here's my guess: pthread(3)'s man page in OS X according to Apple's website says no additional libraries or CFLAGS need to be specified for pthreads to be used, so we'd fall into this case in FindThreads.cmake: # Check if pthread functions are in normal C library CHECK_SYMBOL_EXISTS(pthread_create pthread.h CMAKE_HAVE_LIBC_CREATE) if(CMAKE_HAVE_LIBC_CREATE) set(CMAKE_THREAD_LIBS_INIT "") set(CMAKE_HAVE_THREADS_LIBRARY 1) set(Threads_FOUND TRUE) endif() This means the previous check for CMAKE_HAVE_THREADS_LIBRARY worked and libssh_threaded was built on OS X, but the new IF (CMAKE_THREAD_LIBS_INIT) will fail and libssh_threaded won't be built at all (which explains the weird "-lssh_threads_static" in your linker output. It seems to be an unfortunate consequence of the way Andreas and I interpreted FindThread's documentation in http://www.libssh.org/archive/libssh/2014-01/0000052.html: in OS X, CMAKE_THREAD_LIBS_INIT is rightfully empty as "the thread library" is "no library". Does this patch fix things for you? diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index fa8c5c2..1891a00 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -288,6 +288,6 @@ if (WITH_STATIC_LIB) ) endif (WITH_STATIC_LIB) -if (CMAKE_THREAD_LIBS_INIT) +if (Threads_FOUND) add_subdirectory(threads) -endif (CMAKE_THREAD_LIBS_INIT) +endif (Threads_FOUND)
Re: [PATCH v2 0/2] Stop using CMAKE_HAVE_THREADS_LIBRARY in the build system | Aris Adamantiadis <aris@xxxxxxxxxxxx> |
[PATCH v2 0/2] Stop using CMAKE_HAVE_THREADS_LIBRARY in the build system | Raphael Kubo da Costa <rakuco@xxxxxxxxxxx> |
Re: [PATCH v2 0/2] Stop using CMAKE_HAVE_THREADS_LIBRARY in the build system | Aris Adamantiadis <aris@xxxxxxxxxxxx> |