Cleanup: Use pkg-config to detect liburcu
authorMichael Jeanson <mjeanson@efficios.com>
Tue, 1 Sep 2020 19:19:08 +0000 (15:19 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tue, 20 Oct 2020 19:33:46 +0000 (15:33 -0400)
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Iddfc721318e3ac06f2403876c1aa196da797d113

README.md
configure.ac
liblttng-ust/Makefile.am

index a5f43c4f66f6a23c9330c089fbf3a56e8b36f35d..1251a25b9608d0645c14c0fa9a83a73339c6d99a 100644 (file)
--- a/README.md
+++ b/README.md
@@ -29,6 +29,7 @@ compile the Git repository tree:
     **Autoheader >= 2.69**;
     make sure your system-wide `automake` points to a recent version!)
   - **[GNU Libtool](https://www.gnu.org/software/libtool/) >= 2.2**
+  - **[pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/)**
 
 
 ### Optional dependencies
index d6f49226e5b9a1eb090ffef5ab4f76cde563ab76..3663fcaaafb3d2f1000f4b533d507fe359a40d9e 100644 (file)
@@ -249,48 +249,10 @@ AS_IF([test "x${ac_cv_header_dlfcn_h}" = "xyes"], [
 
 AM_CONDITIONAL([HAVE_DLINFO], [test "x${ac_cv_have_decl_RTLD_DI_LINKMAP}" = "xyes"])
 
-# URCU
-
-AC_MSG_CHECKING([DEFINE_URCU_TLS_INIT()])
-AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
-       #include <urcu/tls-compat.h>
-       DEFINE_URCU_TLS_INIT(int, a, 1);
-]])], [
-       AC_MSG_RESULT([yes])
-], [
-       AC_MSG_RESULT([no])
-       AC_MSG_ERROR([Please upgrade your version of liburcu to 0.12.0 or better])
-])
-
-# urcu - check if we just find the headers it out of the box.
-AC_CHECK_HEADERS([urcu-bp.h], [], [AC_MSG_ERROR([Cannot find [URCU] headers (urcu-bp.h). Use [CPPFLAGS]=-Idir to specify their location.
-This error can also occur when the liburcu package's configure script has not been run.])])
-
-# urcu-cds - check that URCU Concurrent Data Structure lib is available to compilation
-# Part of Userspace RCU library 0.7.2 or better.
-AC_CHECK_LIB([urcu-cds], [_cds_lfht_new], [], [AC_MSG_ERROR([Cannot find
-liburcu-cds lib, part of Userspace RCU 0.7 or better. Use [LDFLAGS]=-Ldir to specify its location.])])
-
-AC_MSG_CHECKING([caa_likely()])
-AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
-       #include <urcu/compiler.h>
-       void fct(void)
-       {
-               if (caa_likely(1)) {
-               }
-       }
-]])], [
-       AC_MSG_RESULT([yes])
-], [
-       AC_MSG_RESULT([no])
-       AC_MSG_ERROR([Please upgrade your version of liburcu to 0.6.6 or better])
-])
-
-# urcu - check that URCU lib is available to compilation
-AC_CHECK_LIB([urcu-bp], [urcu_bp_synchronize_rcu], [], [AC_MSG_ERROR([Cannot find liburcu-bp 0.11 or newer. Use [LDFLAGS]=-Ldir to specify its location.])])
-
-# urcu - check that URCU lib is at least version 0.11
-AC_CHECK_LIB([urcu-bp], [urcu_bp_call_rcu], [], [AC_MSG_ERROR([liburcu 0.11 or newer is needed, please update your version or use [LDFLAGS]=-Ldir to specify the right location.])])
+# Require URCU >= 0.12 for DEFINE_URCU_TLS_INIT
+PKG_CHECK_MODULES([URCU], [liburcu >= 0.12])
+PKG_CHECK_MODULES([URCU_BP], [liburcu-bp >= 0.12])
+PKG_CHECK_MODULES([URCU_CDS], [liburcu-cds >= 0.12])
 
 # numa.h integration
 AS_IF([test "x$NO_NUMA" = "x1"],[
@@ -520,7 +482,7 @@ AC_DEFUN([_AC_DEFINE_AND_SUBST], [
 
 _AC_DEFINE_AND_SUBST([LTTNG_UST_DEFAULT_CONSTRUCTOR_TIMEOUT_MS], [3000])
 
-AM_CFLAGS="-Wall $PTHREAD_CFLAGS"
+AM_CFLAGS="-Wall $URCU_CFLAGS $PTHREAD_CFLAGS"
 AC_SUBST(AM_CFLAGS)
 
 # The order in which the include folders are searched is important.
index 169db3298f4310aae4489b64674276b59139fc62..3caaa1fd74d9d1390412b6b6e9916647de6d7e05 100644 (file)
@@ -13,7 +13,7 @@ liblttng_ust_tracepoint_la_SOURCES = \
        error.h
 
 liblttng_ust_tracepoint_la_LIBADD = \
-       -lurcu-bp \
+       $(URCU_BP_LIBS) \
        $(top_builddir)/snprintf/libustsnprintf.la \
        $(DL_LIBS)
 
@@ -109,7 +109,7 @@ liblttng_ust_support_la_LIBADD = \
 
 liblttng_ust_la_LIBADD = \
        -lrt \
-       -lurcu-cds \
+       $(URCU_CDS_LIBS) \
        $(top_builddir)/snprintf/libustsnprintf.la \
        $(top_builddir)/liblttng-ust-comm/liblttng-ust-comm.la \
        liblttng-ust-tracepoint.la \
This page took 0.027273 seconds and 4 git commands to generate.