From ee15f1b9877834f49342a7bd93457e423eeb2cb4 Mon Sep 17 00:00:00 2001 From: David Adam Date: Sat, 26 Nov 2016 22:50:37 +0800 Subject: [PATCH] configure: check that errno is threadsafe Without `-pthread` specified to the compiler, errno is not threadsafe on Solaris (as _REENTRANT is undefined, and _POSIX_C_SOURCE may not be set until after the inclusion of ). Work on #3340. --- configure.ac | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/configure.ac b/configure.ac index 0192cd48d..0489da9c5 100644 --- a/configure.ac +++ b/configure.ac @@ -536,6 +536,34 @@ else AC_MSG_RESULT(no) fi +# Check that threads actually work on Solaris +AC_MSG_CHECKING([for threadsafe errno]) +AC_RUN_IFELSE( + [AC_LANG_PROGRAM([ + #include + #include + #include + + void *thread1_func(void *p_arg) + { + errno = 1; + return 0; + } + ],[ + errno = 0; + pthread_t t1; + pthread_create(&t1, NULL, thread1_func, NULL); + pthread_join(t1, NULL); + return errno; + ])], + [AC_MSG_RESULT(yes)], + [ + AC_MSG_RESULT(no) + AC_MSG_FAILURE([errno is not threadsafe - check your compiler settings]) + ], + [AC_MSG_RESULT(crosscompiling, skipped)] +) + pcre2_min_version=10.21 EXTRA_PCRE2= AC_ARG_WITH(