diff options
author | Steffen Dettmer <steffen.dettmer@gmail.com> | 2017-08-07 13:30:33 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2017-08-30 15:15:26 (GMT) |
commit | d4e551a90b6bf6ea4e18fa408f40f39df6ad6fb4 (patch) | |
tree | e4cee46c80dc73ac13894598d50ddc3b7ff2e693 /Modules/CheckForPthreads.c | |
parent | f4aa346538433f4c89a9963d74ea5d3f9bd60390 (diff) | |
download | CMake-d4e551a90b6bf6ea4e18fa408f40f39df6ad6fb4.zip CMake-d4e551a90b6bf6ea4e18fa408f40f39df6ad6fb4.tar.gz CMake-d4e551a90b6bf6ea4e18fa408f40f39df6ad6fb4.tar.bz2 |
FindThreads: Drop try_run to improve cross-compiling support
Use `try_compile` instead of `try_run`. It is not clear why `try_run`
was ever needed, and it does not work during cross-compiling.
Update the check's source file to remove code associated with actually
running things. Also remove the ancient `__CLASSIC_C__` code path and
use a simple `int main(void)` as in `Modules/CheckIncludeFile.c.in`.
Fixes: #16920
Diffstat (limited to 'Modules/CheckForPthreads.c')
-rw-r--r-- | Modules/CheckForPthreads.c | 40 |
1 files changed, 7 insertions, 33 deletions
diff --git a/Modules/CheckForPthreads.c b/Modules/CheckForPthreads.c index 6fc6f26..e70ceb1 100644 --- a/Modules/CheckForPthreads.c +++ b/Modules/CheckForPthreads.c @@ -1,41 +1,15 @@ #include <pthread.h> -#include <stdio.h> -#include <unistd.h> -void* runner(void*); - -int res = 0; -#ifdef __CLASSIC_C__ -int main() -{ - int ac; - char* av[]; -#else -int main(int ac, char* av[]) +void* start_routine(void* args) { -#endif - pthread_t tid[2]; - pthread_create(&tid[0], 0, runner, (void*)1); - pthread_create(&tid[1], 0, runner, (void*)2); - -#if defined(__BEOS__) && !defined(__ZETA__) /* (no usleep on BeOS 5.) */ - usleep(1); /* for strange behavior on single-processor sun */ -#endif - - pthread_join(tid[0], 0); - pthread_join(tid[1], 0); - if (ac > 1000) { - return *av[0]; - } - return res; + return args; } -void* runner(void* args) +int main(void) { - int cc; - for (cc = 0; cc < 10; cc++) { - printf("%p CC: %d\n", args, cc); - } - res++; + /* This is a compile and link test, no code to actually run things. */ + pthread_t thread; + pthread_create(&thread, 0, start_routine, 0); + pthread_join(thread, 0); return 0; } |