X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=configure.ac;h=0ff8cee4978c503922427e888fd43870eb89ba28;hp=1186d2ffd36aff2f161c376568453631bfa88563;hb=a25d34bcf9a0d22f6814976ddb7376b464bd3e17;hpb=0291f002c896b86a4c61b963a47b14af3f970da4 diff --git a/configure.ac b/configure.ac index 1186d2ffd..0ff8cee49 100644 --- a/configure.ac +++ b/configure.ac @@ -21,7 +21,8 @@ AC_REQUIRE_AUX_FILE([tap-driver.sh]) AC_USE_SYSTEM_EXTENSIONS AC_SYS_LARGEFILE AC_PROG_CC -AC_PROG_CC_STDC +# AC_PROG_CC_STDC was merged in AC_PROG_CC in autoconf 2.70 +m4_version_prereq([2.70], [], [AC_PROG_CC_STDC]) AC_PROG_CXX RW_PROG_CXX_WORKS AM_CONDITIONAL([CXX_WORKS], [test "x$rw_cv_prog_cxx_works" = "xyes"]) @@ -102,7 +103,9 @@ detection. AM_CONDITIONAL([HAVE_BISON], [test "x$have_bison" = "xyes"]) # check for flex -AC_PROG_LEX +# Prior to autoconf 2.70, AC_PROG_FLEX did not take an argument. This is not a +# problem since the argument is silently ignored by older versions. +AC_PROG_LEX([noyywrap]) FLEX=$LEX AX_PROG_FLEX_VERSION([2.5.35], [have_flex=yes]) @@ -237,8 +240,9 @@ AC_CHECK_FUNCS([ \ sched_getcpu sysconf sync_file_range ]) -# Check for pthread_setname_np and its signature +# Check for pthread_setname_np and pthread_getname_np LTTNG_PTHREAD_SETNAME_NP +LTTNG_PTHREAD_GETNAME_NP # Check if clock_gettime, timer_create, timer_settime, and timer_delete are available in lib rt, and if so, # add -lrt to LIBS @@ -481,35 +485,10 @@ PKG_CHECK_MODULES([libxml2], [libxml-2.0 >= 2.7.6]) 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 ]]) -AC_CHECK_DECL([cds_wfcq_init], [], - [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include ]]) -AC_CHECK_DECL([cds_wfcq_dequeue_blocking], [], - [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include ]]) -AC_CHECK_DECL([futex_async], [], - [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include ]]) -AC_CHECK_DECL([rcu_thread_offline], [], - [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include ]]) -AC_CHECK_DECL([rcu_thread_online], [], - [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include ]]) -AC_CHECK_DECL([caa_likely], [], - [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include ]]) -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 ]] -) - -#Function added in urcu 0.9.0 -AC_CHECK_DECL([urcu_ref_get_unless_zero], [], - [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include ]] -) +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 @@ -582,7 +561,7 @@ AM_CONDITIONAL([LTTNG_TOOLS_BUILD_WITH_LIBPFM], [test "x$have_libpfm" = "xyes"]) swig_version=2.0.0 AC_ARG_ENABLE([python-bindings], - [AC_HELP_STRING([--enable-python-bindings], + [AS_HELP_STRING([--enable-python-bindings], [compile Python bindings])], [enable_python_binding=$enableval], [enable_python_binding=no]) @@ -621,10 +600,8 @@ AX_HAVE_EPOLL( ) AX_CONFIG_FEATURE( [epoll], [This platform supports epoll(7)], - [HAVE_EPOLL], [This platform supports epoll(7).], - [enable_epoll="yes"], [enable_epoll="no"] + [HAVE_EPOLL], [This platform supports epoll(7).] ) -AM_CONDITIONAL([COMPAT_EPOLL], [ test "$enable_epoll" = "yes" ]) AS_IF([test "x$ac_cv_func_dirfd" = "xyes"], [AX_CONFIG_FEATURE_ENABLE(dirfd)], @@ -632,10 +609,8 @@ AS_IF([test "x$ac_cv_func_dirfd" = "xyes"], ) AX_CONFIG_FEATURE( [dirfd], [Use directory file descriptors], - [COMPAT_DIRFD], [This platform supports directory file descriptors.], - [enable_dirfd="yes"], [enable_dirfd="no"] + [HAVE_DIRFD], [This platform supports directory file descriptors.] ) -AM_CONDITIONAL([COMPAT_DIRFD], [ test "$enable_dirfd" = "yes" ]) AM_CONDITIONAL([TEST_JAVA_JUL_AGENT], [test "x$test_java_agent_jul" = "xyes"]) AM_CONDITIONAL([TEST_JAVA_LOG4J_AGENT], [test "x$test_java_agent_log4j" = "xyes"]) @@ -1021,18 +996,26 @@ AS_CASE([$host_cpu], AC_SUBST(ARCHTYPE) +AS_CASE([$host_os], + [linux*], [OSTYPE="linux"], + [freebsd*], [OSTYPE="freebsd"], + [solaris*], [OSTYPE="solaris"], + [cygwin*], [OSTYPE="cygwin"], + [mingw*], [OSTYPE="mingw"], + [OSTYPE="unknown"] +) +AC_SUBST(OSTYPE) +AM_CONDITIONAL([IS_LINUX], [test $OSTYPE = "linux"]) + + + +# Userspace callstack capture is only supported by the Linux kernel on x86. AH_TEMPLATE([HAVE_MODULES_USERSPACE_CALLSTACK_CONTEXT], [Define if you have LTTng-modules userspace callstack tracing support]) -AC_MSG_CHECKING([for architecture support of userspace callstack tracing from the kernel]) -AS_IF([test "x$ARCHTYPE" = "xx86"],[ - # Userspace callstack capture is only supported by the Linux kernel on x86. - AC_MSG_RESULT([yes]) +AS_IF([test "x$ARCHTYPE" = "xx86" && test "x$OSTYPE" = "xlinux"],[ have_modules_userspace_callstack_context=yes AC_DEFINE([HAVE_MODULES_USERSPACE_CALLSTACK_CONTEXT], [1]) -], [ - AC_MSG_RESULT([no]) - have_modules_userspace_callstack_context=no ]) -AM_CONDITIONAL([HAVE_MODULES_USERSPACE_CALLSTACK_CONTEXT], [test x$have_modules_userspace_callstack_context != xno]) +AM_CONDITIONAL([HAVE_MODULES_USERSPACE_CALLSTACK_CONTEXT], [test x$have_modules_userspace_callstack_context = xyes]) # Export binaries build conditions. AM_CONDITIONAL([BUILD_BIN_LTTNG], [test x$enable_bin_lttng != xno])