diff options
author | Björn-Egil Dahlberg <[email protected]> | 2012-11-21 17:12:19 +0100 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2012-11-21 17:12:19 +0100 |
commit | 998ed368ed0630f2a1b202c046afad0022b3ccc6 (patch) | |
tree | 529bfe443007e4613197535cbb04a19cad6ec1e5 /lib/erl_interface | |
parent | b0acd41f90490d38156cf9c8615859def630596b (diff) | |
parent | 3660d23158441075dec8e3c08fb513225ec10210 (diff) | |
download | otp-998ed368ed0630f2a1b202c046afad0022b3ccc6.tar.gz otp-998ed368ed0630f2a1b202c046afad0022b3ccc6.tar.bz2 otp-998ed368ed0630f2a1b202c046afad0022b3ccc6.zip |
Merge branch 'ph/erl_interface/check-thread-support/OTP-10581' into maint
* ph/erl_interface/check-thread-support/OTP-10581:
Teach erl_interface configure more pthread support
Diffstat (limited to 'lib/erl_interface')
-rw-r--r-- | lib/erl_interface/aclocal.m4 | 10 | ||||
-rw-r--r-- | lib/erl_interface/configure.in | 8 |
2 files changed, 15 insertions, 3 deletions
diff --git a/lib/erl_interface/aclocal.m4 b/lib/erl_interface/aclocal.m4 index b1cf1fe404..9578cd35c4 100644 --- a/lib/erl_interface/aclocal.m4 +++ b/lib/erl_interface/aclocal.m4 @@ -740,11 +740,16 @@ dnl Try to find POSIX threads dnl The usual pthread lib... AC_CHECK_LIB(pthread, pthread_create, THR_LIBS="-lpthread") -dnl FreeBSD has pthreads in special c library, c_r... +dnl Very old versions of FreeBSD have pthreads in special c library, c_r... if test "x$THR_LIBS" = "x"; then AC_CHECK_LIB(c_r, pthread_create, THR_LIBS="-lc_r") fi +dnl QNX has pthreads in standard C library + if test "x$THR_LIBS" = "x"; then + AC_CHECK_FUNC(pthread_create, THR_LIBS="none_needed") + fi + dnl On ofs1 the '-pthread' switch should be used if test "x$THR_LIBS" = "x"; then AC_MSG_CHECKING([if the '-pthread' switch can be used]) @@ -765,6 +770,9 @@ dnl On ofs1 the '-pthread' switch should be used if test "x$THR_LIBS" != "x"; then THR_DEFS="$THR_DEFS -D_THREAD_SAFE -D_REENTRANT -DPOSIX_THREADS" THR_LIB_NAME=pthread + if test "x$THR_LIBS" = "xnone_needed"; then + THR_LIBS= + fi case $host_os in solaris*) THR_DEFS="$THR_DEFS -D_POSIX_PTHREAD_SEMANTICS" ;; diff --git a/lib/erl_interface/configure.in b/lib/erl_interface/configure.in index c958f80065..f1c9ebbb6f 100644 --- a/lib/erl_interface/configure.in +++ b/lib/erl_interface/configure.in @@ -79,7 +79,7 @@ AC_ARG_ENABLE(threads, no) threads_disabled=yes ;; *) threads_disabled=no ;; esac ], -[ threads_disabled=no ]) +[ threads_disabled=maybe ]) dnl ---------------------------------------------------------------------- dnl Checks for programs @@ -237,12 +237,16 @@ AC_SUBST(THR_DEFS) AC_SUBST(EI_THREADS) case "$threads_disabled" in - no) + no|maybe) LM_CHECK_THR_LIB case "$THR_LIB_NAME" in "") EI_THREADS="false" + # Fail if --enable-threads given and no threads found + if test "x$threads_disabled" = "xno"; then + AC_MSG_ERROR(No threads support found) + fi ;; win32_threads) EI_THREADS="true" |