X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=configure.ac;h=549b6996258ee9c981e4e558ed7051d62a0d3dff;hp=2bb30edb325316b64307d67a9e968a5aa280e7c4;hb=8c1d25ffa38450278c1757dfae5b6511e8be1aa7;hpb=7f08cc82e68617aa423952b8f9cc7c74bc247f8d diff --git a/configure.ac b/configure.ac index 2bb30edb3..549b69962 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ dnl SPDX-License-Identifier: GPL-2.0-only AC_PREREQ([2.64]) -AC_INIT([lttng-tools],[2.12.0-rc1],[jeremie.galarneau@efficios.com],[],[https://lttng.org]) +AC_INIT([lttng-tools],[2.13.0-rc1],[jeremie.galarneau@efficios.com],[],[https://lttng.org]) AC_CONFIG_HEADERS([include/config.h]) AC_CONFIG_AUX_DIR([config]) @@ -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"]) @@ -32,10 +33,31 @@ AM_CONDITIONAL([CXX_WORKS], [test "x$rw_cv_prog_cxx_works" = "xyes"]) # -Wunknown-warning-option diagnostic fatal with clang. AX_APPEND_COMPILE_FLAGS([ dnl -Wall dnl + dnl We currently get this warning when building with Clang: + dnl + dnl /usr/include/setjmp.h:54:12: error: declaration of built-in function '__sigsetjmp' requires the declaration of the 'jmp_buf' type, commonly provided in the header . [-Werror,-Wincomplete-setjmp-declaration] + dnl extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __THROWNL; + dnl ^ + -Wno-incomplete-setjmp-declaration dnl + -Wdiscarded-qualifiers dnl + -Wmissing-declarations dnl + -Wmissing-prototypes dnl + -Wmissing-parameter-type dnl + -Wold-style-definition dnl + -Wstrict-prototypes dnl + -Wshadow dnl ], [WARN_CFLAGS], [-Werror]) +# When given, add -Werror to WARN_CFLAGS. +AC_ARG_ENABLE([Werror], + [AS_HELP_STRING([--enable-Werror], [Treat compiler warnings as errors.])] +) +AS_IF([test "x$enable_Werror" = "xyes"], + [WARN_CFLAGS="${WARN_CFLAGS} -Werror"] +) + # Checks for programs. AC_PROG_GREP AC_PROG_MAKE_SET @@ -82,7 +104,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]) @@ -164,8 +188,8 @@ AC_DEFINE_UNQUOTED([VERSION_MAJOR], $major_version, [LTTng-Tools major version n AC_DEFINE_UNQUOTED([VERSION_MINOR], $minor_version, [LTTng-Tools minor version number]) AC_DEFINE_UNQUOTED([VERSION_PATCHLEVEL], $patchlevel_version, [LTTng-Tools patchlevel version number]) -version_name="(Ta) Meilleure" -version_description="Ta Meilleure is a Northeast IPA beer brewed by Lagabière. Translating to \"Your best one\", this beer gives out strong aromas of passion fruit, lemon, and peaches. Tastewise, expect a lot of fruit, a creamy texture, and a smooth lingering hop bitterness." +version_name="Nordicité" +version_description="The product of a collaboration between Champ Libre and Boréale, this farmhouse IPA is brewed with Kveik yeast and Québec-grown barley, oats and juniper branches. The result is a remarkable fruity hazy golden IPA that offers a balanced touch of resinous and woodsy bitterness." version_description_c=$(echo $version_description | $SED 's/"/\\"/g') AC_DEFINE_UNQUOTED([VERSION_NAME], ["$version_name"], "") @@ -217,6 +241,10 @@ AC_CHECK_FUNCS([ \ sched_getcpu sysconf sync_file_range ]) +# 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 AC_CHECK_LIB([rt], [clock_gettime, timer_create, timer_settime, timer_delete]) @@ -395,35 +423,37 @@ _AC_DEFINE_QUOTED_AND_SUBST([DEFAULT_NETWORK_DATA_BIND_ADDRESS], [0.0.0.0]) _AC_DEFINE_QUOTED_AND_SUBST([DEFAULT_NETWORK_VIEWER_BIND_ADDRESS], [localhost]) _AC_DEFINE_AND_SUBST([DEFAULT_NETWORK_RELAYD_CTRL_MAX_PAYLOAD_SIZE], [134217728]) _AC_DEFINE_AND_SUBST([DEFAULT_ROTATE_PENDING_TIMER], [500000]) +_AC_DEFINE_AND_SUBST([DEFAULT_EVENT_NOTIFIER_ERROR_COUNT_MAP_SIZE], [4096]) # Command short descriptions -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ADD_CONTEXT], [Add context fields to a channel]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_CREATE], [Create a tracing session]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ADD_CONTEXT], [Add context fields to be recorded]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ADD_TRIGGER], [Add a trigger]) _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_CLEAR], [Clear a tracing session]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_DESTROY], [Tear down tracing sessions]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_DISABLE_CHANNEL], [Disable tracing channels]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_DISABLE_EVENT], [Disable event rules]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_DISABLE_ROTATION], [Unset a rotation schedule]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ENABLE_CHANNEL], [Create or enable tracing channels]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ENABLE_EVENT], [Create or enable event rules]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ENABLE_ROTATION], [Set a rotation schedule]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_HELP], [Display help information about a command]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_LIST], [List tracing sessions, domains, channels, and events]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_CREATE], [Create a tracing session]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_DESTROY], [Destroy tracing sessions]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_DISABLE_CHANNEL], [Disable channels]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_DISABLE_EVENT], [Disable recording event rules]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_DISABLE_ROTATION], [Unset a tracing session rotation schedule]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ENABLE_CHANNEL], [Create or enable a channel]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ENABLE_EVENT], [Create or enable recording event rules]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ENABLE_ROTATION], [Set a tracing session rotation schedule]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_HELP], [Show the help of a command]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_LIST], [List tracing sessions and instrumentation points]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_LIST_TRIGGERS], [List triggers]) _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_LOAD], [Load tracing session configurations]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_REGENERATE], [Manage an LTTng tracing session's data regeneration]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ROTATE], [Archive a tracing session's current trace chunk]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_REGENERATE], [Regenerate specific tracing session data]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_REMOVE_TRIGGER], [Remove a trigger]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ROTATE], [Archive the current trace chunk of a tracing session]) _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_SAVE], [Save tracing session configurations]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_SET_SESSION], [Set current tracing session]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_SNAPSHOT], [Snapshot buffers of current tracing session]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_START], [Start tracing]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_STATUS], [Get the status of the current tracing session]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_STOP], [Stop tracing]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_DISABLE_ROTATION], [Unset a rotation schedule]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ENABLE_ROTATION], [Set a rotation schedule]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_TRACK], [Track specific system resources]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_UNTRACK], [Untrack specific system resources]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_VERSION], [Show version information]) -_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_VIEW], [Start trace viewer]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_SET_SESSION], [Set the current tracing session]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_SNAPSHOT], [Take a tracing session snapshot]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_START], [Start a tracing session]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_STATUS], [Show the status of the current tracing session]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_STOP], [Stop a tracing session]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_TRACK], [Allow specific processes to record events]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_UNTRACK], [Disallow specific processes to record events]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_VERSION], [Show LTTng-tools version information]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_VIEW], [Launch a trace reader]) if test "x$prefix" = "xNONE"; then prefix=$ac_default_prefix @@ -458,35 +488,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 @@ -559,7 +564,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]) @@ -598,10 +603,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)], @@ -609,10 +612,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"]) @@ -998,18 +999,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]) @@ -1051,13 +1060,17 @@ AM_CONDITIONAL([BUILD_LIB_UST_CONSUMER], [test x$build_lib_ust_consumer = xyes]) AM_CFLAGS="${WARN_CFLAGS} -fno-strict-aliasing $PTHREAD_CFLAGS" AC_SUBST(AM_CFLAGS) +# This is set even though it is empty, so Makefiles can do "AM_LDFLAGS += ...". +AM_LDFLAGS="" +AC_SUBST(AM_LDFLAGS) + # The order in which the include folders are searched is important. # The top_builddir should always be searched first in the event that a build # time generated file is included. An example of this is the "version.i" file. # In a scenario where lttng-tools is built from a distribution tarball and in a # out-of-tree manner, the generated "version.i" has priority on the one from # the source (distribution tarball) and must be found first. -AM_CPPFLAGS="-I\$(top_builddir)/include -I\$(top_srcdir)/include -I\$(top_srcdir)/src -include config.h $AM_CPPFLAGS" +AM_CPPFLAGS="-I\$(top_builddir)/include -I\$(top_srcdir)/include -I\$(top_builddir)/src -I\$(top_srcdir)/src -include config.h $AM_CPPFLAGS" AC_SUBST(AM_CPPFLAGS) lttngincludedir="${includedir}/lttng" @@ -1075,12 +1088,18 @@ AC_SUBST(lttngnotificationincludedir) lttngtriggerincludedir="${includedir}/lttng/trigger" AC_SUBST(lttngtriggerincludedir) +lttngeventruleincludedir="${includedir}/lttng/event-rule" +AC_SUBST(lttngeventruleincludedir) + lttnglibexecdir="${libdir}/lttng/libexec" AC_SUBST(lttnglibexecdir) AC_CONFIG_FILES([ Makefile doc/Makefile + doc/examples/Makefile + doc/examples/rotation/Makefile + doc/examples/trigger-condition-event-matches/Makefile doc/man/Makefile doc/man/asciidoc-attrs.conf include/Makefile @@ -1091,6 +1110,8 @@ AC_CONFIG_FILES([ extras/core-handler/Makefile src/Makefile src/common/Makefile + src/common/argpar/Makefile + src/common/bytecode/Makefile src/common/kernel-ctl/Makefile src/common/kernel-consumer/Makefile src/common/consumer/Makefile @@ -1105,9 +1126,9 @@ AC_CONFIG_FILES([ src/common/config/Makefile src/common/string-utils/Makefile src/common/fd-tracker/Makefile + src/common/filter/Makefile src/lib/Makefile src/lib/lttng-ctl/Makefile - src/lib/lttng-ctl/filter/Makefile src/lib/lttng-ctl/lttng-ctl.pc src/bin/Makefile src/bin/lttng-consumerd/Makefile @@ -1115,6 +1136,8 @@ AC_CONFIG_FILES([ src/bin/lttng-relayd/Makefile src/bin/lttng/Makefile src/bin/lttng-crash/Makefile + src/vendor/Makefile + src/vendor/msgpack/Makefile tests/Makefile tests/destructive/Makefile tests/regression/Makefile @@ -1131,6 +1154,7 @@ AC_CONFIG_FILES([ tests/regression/tools/save-load/configuration/Makefile tests/regression/tools/mi/Makefile tests/regression/tools/wildcard/Makefile + tests/regression/tools/channel/Makefile tests/regression/tools/crash/Makefile tests/regression/tools/regen-metadata/Makefile tests/regression/tools/regen-statedump/Makefile @@ -1142,6 +1166,11 @@ AC_CONFIG_FILES([ tests/regression/tools/working-directory/Makefile tests/regression/tools/relayd-grouping/Makefile tests/regression/tools/clear/Makefile + tests/regression/tools/trigger/Makefile + tests/regression/tools/trigger/rate-policy/Makefile + tests/regression/tools/trigger/start-stop/Makefile + tests/regression/tools/trigger/utils/Makefile + tests/regression/tools/trigger/name/Makefile tests/regression/ust/Makefile tests/regression/ust/nprocesses/Makefile tests/regression/ust/high-throughput/Makefile