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

Reply via email to