I updated to CMake 3.11.0, but still got the same error. I have gotten around the problem by removing the find_package and forcing -pthread on the C/C++ command line, however this is an unsatisfying resolution to the problem.
> On Mar 30, 2018, at 12:06 PM, Andrew Brownsword > <[email protected]> wrote: > > I have an Ubuntu 16.04 ARMv7 system upon which I have built CLang 7.0 and am > now trying to use it to build my CMake-based project that was previously > working with the CLang 3.8.0 that I had installed via apt-get. The new > compiler does appear to be selected correctly when I run cmake. The run > fails when it tries this find_package call: > > set(THREADS_PREFER_PTHREAD_FLAG ON) > find_package(Threads REQUIRED) > > > With this error: > > CMake Error at > /usr/local/share/cmake-3.8/Modules/FindPackageHandleStandardArgs.cmake:137 > (message): > Could NOT find Threads (missing: Threads_FOUND) > Call Stack (most recent call first): > /usr/local/share/cmake-3.8/Modules/FindPackageHandleStandardArgs.cmake:377 > (_FPHSA_FAILURE_MESSAGE) > /usr/local/share/cmake-3.8/Modules/FindThreads.cmake:212 > (FIND_PACKAGE_HANDLE_STANDARD_ARGS) > src/libraries/civetweb/CMakeLists.txt:8 (find_package) > > > > The libpthread.so resides in /usr/lib/arm-linux-gnueabihf/ on this system. I > am *not* cross-compiling, and I built CLang on the system itself. I’ve > looked at the REGEX that CMake is supposed to use to find this subdirectory > and it looks correct (and it did work with CLang 3.8.0). > > Any suggestions? > > > > > > > The CMakeError.log file contains this: > > Determining if the pthread_create exist failed with the following output: > Change Dir: ~/CMakeFiles/CMakeTmp > > Run Build Command:"/usr/bin/make" "cmTC_1d4b8/fast" > /usr/bin/make -f CMakeFiles/cmTC_1d4b8.dir/build.make > CMakeFiles/cmTC_1d4b8.dir/build > make[1]: Entering directory '~/CMakeFiles/CMakeTmp' > Building C object CMakeFiles/cmTC_1d4b8.dir/CheckSymbolExists.c.o > /usr/bin/clang -Wall -fno-strict-aliasing -o > CMakeFiles/cmTC_1d4b8.dir/CheckSymbolExists.c.o -c > ~/CMakeFiles/CMakeTmp/CheckSymbolExists.c > Linking C executable cmTC_1d4b8 > /usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1d4b8.dir/link.txt > --verbose=1 > /usr/bin/clang -Wall -fno-strict-aliasing > CMakeFiles/cmTC_1d4b8.dir/CheckSymbolExists.c.o -o cmTC_1d4b8 > CMakeFiles/cmTC_1d4b8.dir/CheckSymbolExists.c.o: In function `main': > ~/CMakeFiles/CMakeTmp/CheckSymbolExists.c:(.text+0x4): undefined reference to > `pthread_create' > ~/CMakeFiles/CMakeTmp/CheckSymbolExists.c:(.text+0x8): undefined reference to > `pthread_create' > ~/CMakeFiles/CMakeTmp/CheckSymbolExists.c:(.text+0x24): undefined reference > to `pthread_create' > ~/CMakeFiles/CMakeTmp/CheckSymbolExists.c:(.text+0x28): undefined reference > to `pthread_create' > clang: error: linker command failed with exit code 1 (use -v to see > invocation) > CMakeFiles/cmTC_1d4b8.dir/build.make:97: recipe for target 'cmTC_1d4b8' failed > make[1]: *** [cmTC_1d4b8] Error 1 > make[1]: Leaving directory '~/CMakeFiles/CMakeTmp' > Makefile:126: recipe for target 'cmTC_1d4b8/fast' failed > make: *** [cmTC_1d4b8/fast] Error 2 > > File ~/CMakeFiles/CMakeTmp/CheckSymbolExists.c: > /* */ > #include <pthread.h> > > int main(int argc, char** argv) > { > (void)argv; > #ifndef pthread_create > return ((int*)(&pthread_create))[argc]; > #else > (void)argc; > return 0; > #endif > } > > Determining if the function pthread_create exists in the pthreads failed with > the following output: > Change Dir: ~/CMakeFiles/CMakeTmp > > Run Build Command:"/usr/bin/make" "cmTC_81507/fast" > /usr/bin/make -f CMakeFiles/cmTC_81507.dir/build.make > CMakeFiles/cmTC_81507.dir/build > make[1]: Entering directory '~/CMakeFiles/CMakeTmp' > Building C object CMakeFiles/cmTC_81507.dir/CheckFunctionExists.c.o > /usr/bin/clang -Wall -fno-strict-aliasing > -DCHECK_FUNCTION_EXISTS=pthread_create -o > CMakeFiles/cmTC_81507.dir/CheckFunctionExists.c.o -c > /usr/local/share/cmake-3.8/Modules/CheckFunctionExists.c > Linking C executable cmTC_81507 > /usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_81507.dir/link.txt > --verbose=1 > /usr/bin/clang -Wall -fno-strict-aliasing > -DCHECK_FUNCTION_EXISTS=pthread_create > CMakeFiles/cmTC_81507.dir/CheckFunctionExists.c.o -o cmTC_81507 -lpthreads > /usr/bin/ld: cannot find -lpthreads > clang: error: linker command failed with exit code 1 (use -v to see > invocation) > CMakeFiles/cmTC_81507.dir/build.make:97: recipe for target 'cmTC_81507' failed > make[1]: *** [cmTC_81507] Error 1 > make[1]: Leaving directory '~/CMakeFiles/CMakeTmp' > Makefile:126: recipe for target 'cmTC_81507/fast' failed > make: *** [cmTC_81507/fast] Error 2 > > > Determining if the include file pthread.h exists failed with the following > output: > Change Dir: ~/CMakeFiles/CMakeTmp > > Run Build Command:"/usr/bin/make" "cmTC_83cc7/fast" > /usr/bin/make -f CMakeFiles/cmTC_83cc7.dir/build.make > CMakeFiles/cmTC_83cc7.dir/build > make[1]: Entering directory '~/CMakeFiles/CMakeTmp' > Building C object CMakeFiles/cmTC_83cc7.dir/CheckIncludeFile.c.o > /usr/local/bin/clang -Wall -fno-strict-aliasing -o > CMakeFiles/cmTC_83cc7.dir/CheckIncludeFile.c.o -c > ~/CMakeFiles/CMakeTmp/CheckIncludeFile.c > In file included from ~/CMakeFiles/CMakeTmp/CheckIncludeFile.c:1: > In file included from /usr/include/pthread.h:23: > /usr/include/sched.h:28:10: fatal error: 'stddef.h' file not found > #include <stddef.h> > ^~~~~~~~~~ > 1 error generated. > CMakeFiles/cmTC_83cc7.dir/build.make:65: recipe for target > 'CMakeFiles/cmTC_83cc7.dir/CheckIncludeFile.c.o' failed > make[1]: *** [CMakeFiles/cmTC_83cc7.dir/CheckIncludeFile.c.o] Error 1 > make[1]: Leaving directory '~/CMakeFiles/CMakeTmp' > Makefile:126: recipe for target 'cmTC_83cc7/fast' failed > make: *** [cmTC_83cc7/fast] Error 2 > > > >
-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: https://cmake.org/mailman/listinfo/cmake
