AC_CHECK_FUNC([clock_gettime], [AC_DEFINE_UNQUOTED([LTTNG_HAVE_CLOCK_GETTIME], 1, [Has clock_gettime() support.])])
# URCU library version needed or newer
-m4_define([WRONG_LIBURCU_MSG], [Userspace RCU (liburcu) >= 0.9.0 is needed])
-
-# Check liburcu needed function calls
-AC_CHECK_DECL([cds_list_add], [],
- [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include <urcu/list.h>]])
-AC_CHECK_DECL([cds_wfcq_init], [],
- [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include <urcu/wfcqueue.h>]])
-AC_CHECK_DECL([cds_wfcq_dequeue_blocking], [],
- [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include <urcu/wfcqueue.h>]])
-AC_CHECK_DECL([futex_async], [],
- [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include <urcu/futex.h>]])
-AC_CHECK_DECL([rcu_thread_offline], [],
- [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include <urcu.h>]])
-AC_CHECK_DECL([rcu_thread_online], [],
- [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include <urcu.h>]])
-AC_CHECK_DECL([caa_likely], [],
- [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include <urcu.h>]])
-AC_CHECK_LIB([urcu-cds], [_cds_lfht_new], [],
- [AC_MSG_ERROR([WRONG_LIBURCU_MSG])])
-
-#Function added in urcu 0.7.0
-AC_CHECK_DECL([cmm_smp_mb__before_uatomic_or], [],
- [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include <urcu.h>]]
-)
-
-#Function added in urcu 0.9.0
-AC_CHECK_DECL([urcu_ref_get_unless_zero], [],
- [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include <urcu/ref.h>]]
-)
+PKG_CHECK_MODULES([URCU], [liburcu >= 0.9])
+PKG_CHECK_MODULES([URCU_BP], [liburcu-bp >= 0.9])
+PKG_CHECK_MODULES([URCU_CDS], [liburcu-cds >= 0.9])
+AM_CPPFLAGS="$AM_CPPFLAGS $URCU_CFLAGS"
# Check for libkmod, it will be auto-neabled if found but won't fail if it's not,
# it can be explicitly disabled with --without-kmod
test_session_SOURCES = test_session.c
test_session_LDADD = $(LIBTAP) $(LIBCOMMON) $(LIBRELAYD) $(LIBSESSIOND_COMM) \
- $(LIBHASHTABLE) $(DL_LIBS) -lrt -lurcu-common -lurcu \
+ $(LIBHASHTABLE) $(DL_LIBS) -lrt $(URCU_LIBS) \
$(KMOD_LIBS) \
$(top_builddir)/src/lib/lttng-ctl/liblttng-ctl.la \
$(top_builddir)/src/common/kernel-ctl/libkernel-ctl.la \
if HAVE_LIBLTTNG_UST_CTL
test_ust_data_SOURCES = test_ust_data.c
test_ust_data_LDADD = $(LIBTAP) $(LIBCOMMON) $(LIBRELAYD) $(LIBSESSIOND_COMM) \
- $(LIBHASHTABLE) $(DL_LIBS) -lrt -lurcu-common -lurcu \
+ $(LIBHASHTABLE) $(DL_LIBS) -lrt $(URCU_LIBS) \
$(UST_CTL_LIBS) \
$(KMOD_LIBS) \
$(top_builddir)/src/lib/lttng-ctl/liblttng-ctl.la \
# fd tracker unit test
test_fd_tracker_SOURCES = test_fd_tracker.c
-test_fd_tracker_LDADD = $(LIBTAP) $(LIBFDTRACKER) $(DL_LIBS) -lurcu $(LIBCOMMON) $(LIBHASHTABLE)
+test_fd_tracker_LDADD = $(LIBTAP) $(LIBFDTRACKER) $(DL_LIBS) $(URCU_LIBS) $(LIBCOMMON) $(LIBHASHTABLE)
# uuid unit test
test_uuid_SOURCES = test_uuid.c