Skip to content

Commit

Permalink
NetBSD: Check for and use atomic_ops(3) if available
Browse files Browse the repository at this point in the history
  • Loading branch information
mato committed Feb 22, 2010
1 parent 3a69cca commit 61f0ef5
Showing 1 changed file with 14 additions and 4 deletions.
18 changes: 14 additions & 4 deletions configure.in
Original file line number Diff line number Diff line change
Expand Up @@ -158,11 +158,21 @@ case "${host_os}" in
# Define on NetBSD to enable all library features
CPPFLAGS="-D_NETBSD_SOURCE $CPPFLAGS"
AC_DEFINE(ZMQ_HAVE_NETBSD, 1, [Have NetBSD OS])
# NetBSD 5.0 and newer provides atomic operations
# NetBSD 5.0 and newer provides atomic operations but we can
# only use these on systems where PR #42842 has been fixed so
# we must try and link a test program using C++.
netbsd_has_atomic=no
# XXX As of 5.0.1 the functions declared in atomic.h are
# missing "extern C", disable this until upstream fixes it.
# AC_CHECK_HEADERS(atomic.h, [netbsd_has_atomic=yes])
AC_MSG_CHECKING([whether atomic operations can be used])
AC_LANG_PUSH([C++])
AC_LINK_IFELSE([AC_LANG_PROGRAM(
[[#include <atomic.h>]],
[[uint32_t value;
atomic_cas_32 (&value, 0, 0);
return 0;]])],
[netbsd_has_atomic=yes],
[netbsd_has_atomic=no])
AC_LANG_POP([C++])
AC_MSG_RESULT([$netbsd_has_atomic])
if test "x$netbsd_has_atomic" = "xno"; then
AC_DEFINE(ZMQ_FORCE_MUTEXES, 1, [Force to use mutexes])
fi
Expand Down

0 comments on commit 61f0ef5

Please sign in to comment.