summaryrefslogtreecommitdiffstats
path: root/configure.in
diff options
context:
space:
mode:
authorMark Dickinson <dickinsm@gmail.com>2009-11-28 12:52:39 (GMT)
committerMark Dickinson <dickinsm@gmail.com>2009-11-28 12:52:39 (GMT)
commit875ada4b0fefd2e399719d728073b681a04d31b4 (patch)
tree3ca727d4def37115fc26eac132d2a9b88fa95b7c /configure.in
parent7f40573ccb80997d3c5eba635ac4010271c5a364 (diff)
downloadcpython-875ada4b0fefd2e399719d728073b681a04d31b4.zip
cpython-875ada4b0fefd2e399719d728073b681a04d31b4.tar.gz
cpython-875ada4b0fefd2e399719d728073b681a04d31b4.tar.bz2
Merged revisions 76566 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ................ r76566 | mark.dickinson | 2009-11-28 12:48:43 +0000 (Sat, 28 Nov 2009) | 18 lines Merged revisions 76432,76558 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r76432 | mark.dickinson | 2009-11-20 19:30:22 +0000 (Fri, 20 Nov 2009) | 5 lines Issue #7272: Add configure test to detect whether sem_open works properly, and use this to skip test_multiprocessing on platforms where sem_open raises a signal. This should fix some FreeBSD buildbot failures for test_multiprocessing. ........ r76558 | mark.dickinson | 2009-11-28 10:44:20 +0000 (Sat, 28 Nov 2009) | 4 lines Issue #7272, continued: don't re-use existing HAVE_BROKEN_POSIX_SEMAPHORES to indicate that semaphores aren't available; define a new variable POSIX_SEMAPHORES_NOT_ENABLED instead. ........ ................
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in34
1 files changed, 34 insertions, 0 deletions
diff --git a/configure.in b/configure.in
index 1d024cd..09714d5 100644
--- a/configure.in
+++ b/configure.in
@@ -3338,6 +3338,40 @@ AC_CHECK_DECLS([isinf, isnan, isfinite], [], [], [[#include <math.h>]])
LIBS=$LIBS_SAVE
+# For multiprocessing module, check that sem_open
+# actually works. For FreeBSD versions <= 7.2,
+# the kernel module that provides POSIX semaphores
+# isn't loaded by default, so an attempt to call
+# sem_open results in a 'Signal 12' error.
+AC_MSG_CHECKING(whether POSIX semaphores are enabled)
+AC_CACHE_VAL(ac_cv_posix_semaphores_enabled,
+AC_TRY_RUN([
+#include <unistd.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <semaphore.h>
+#include <sys/stat.h>
+
+int main(void) {
+ sem_t *a = sem_open("/autoconf", O_CREAT, S_IRUSR|S_IWUSR, 0);
+ if (a == SEM_FAILED) {
+ perror("sem_open");
+ return 1;
+ }
+ sem_close(a);
+ return 0;
+}
+], ac_cv_posix_semaphores_enabled=yes,
+ ac_cv_posix_semaphores_enabled=no,
+ ac_cv_posix_semaphores_enabled=yes)
+)
+AC_MSG_RESULT($ac_cv_posix_semaphores_enabled)
+if test $ac_cv_posix_semaphores_enabled = no
+then
+ AC_DEFINE(POSIX_SEMAPHORES_NOT_ENABLED, 1,
+ [Define if POSIX semaphores aren't enabled on your system])
+fi
+
# Multiprocessing check for broken sem_getvalue
AC_MSG_CHECKING(for broken sem_getvalue)
AC_TRY_RUN([