X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=configure.ac;h=f11d1b86d205805e79e697c019d513d68ec48986;hp=5173b1ea9c778063c7bcfb3ade9c18a88b243acb;hb=77927271f4b396ec3cb9e8e380c26d19e3589558;hpb=2288467f63826a06d25ac361fa04ea92ec7ddfa3 diff --git a/configure.ac b/configure.ac index 5173b1ea9..f11d1b86d 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ([2.64]) -AC_INIT([lttng-tools],[2.11.0-pre],[jeremie.galarneau@efficios.com],[],[https://lttng.org]) +AC_INIT([lttng-tools],[2.12.0-pre],[jeremie.galarneau@efficios.com],[],[https://lttng.org]) AC_CONFIG_HEADERS([include/config.h]) AC_CONFIG_AUX_DIR([config]) @@ -21,6 +21,12 @@ AC_USE_SYSTEM_EXTENSIONS AC_SYS_LARGEFILE AC_PROG_CC AC_PROG_CC_STDC +AC_PROG_CXX +rw_PROG_CXX_WORKS +AM_CONDITIONAL([CXX_WORKS], [test "x$rw_cv_prog_cxx_works" = "xyes"]) + +ax_CHECK_SDT_WORKS +AM_CONDITIONAL([SDT_WORKS], [test "x$ax_check_sdt_works" = "xyes"]) # Checks for programs. AC_PROG_GREP @@ -40,6 +46,11 @@ AM_CONDITIONAL([HAVE_OBJCOPY], [test "x$OBJCOPY" != xno]) AC_PATH_PROG([PGREP], [pgrep], [no]) AM_CONDITIONAL([HAVE_PGREP], [test "x$PGREP" != "xno"]) +# set $IN_GIT_REPO if we're in the Git repository; the `bootstrap` file +# is not distributed in tarballs +AS_IF([test -f "$srcdir/bootstrap"], [in_git_repo=yes], [in_git_repo=no]) +AM_CONDITIONAL([IN_GIT_REPO], [test "x$in_git_repo" = "xyes"]) + # check for bison AC_PROG_YACC BISON=$YACC @@ -107,6 +118,10 @@ AS_IF([test "x$ax_cv___attribute__" = "xyes"], AX_PTHREAD(,[AC_MSG_ERROR([Could not configure pthreads support])]) +# Check if linker has the -no-pie option. +AX_CHECK_LINK_FLAG([-no-pie], [linker_have_no_pie_option=yes]) +AM_CONDITIONAL([LINKER_HAVE_NO_PIE_OPTION], [test "x$linker_have_no_pie_option" = "xyes"]) + AX_LIB_SOCKET_NSL LT_NO_UNDEFINED="" @@ -142,7 +157,7 @@ AC_DEFINE_UNQUOTED([VERSION_MINOR], $minor_version, [LTTng-Tools minor version n AC_DEFINE_UNQUOTED([VERSION_PATCHLEVEL], $patchlevel_version, [LTTng-Tools patchlevel version number]) version_name="Codename TBD" -version_description='Description TBD' +version_description="Description TBD" version_description_c=$(echo $version_description | $SED 's/"/\\"/g') AC_DEFINE_UNQUOTED([VERSION_NAME], ["$version_name"], "") @@ -179,13 +194,15 @@ AC_CHECK_HEADERS([ \ signal.h stdlib.h sys/un.h sys/socket.h stdlib.h stdio.h \ getopt.h sys/ipc.h sys/shm.h popt.h grp.h arpa/inet.h \ netdb.h netinet/in.h paths.h stddef.h sys/file.h sys/ioctl.h \ - sys/mount.h sys/param.h sys/time.h + sys/mount.h sys/param.h sys/time.h elf.h ]) +AM_CONDITIONAL([HAVE_ELF_H], [test x$ac_cv_header_elf_h = xyes]) + # Basic functions check AC_CHECK_FUNCS([ \ atexit bzero clock_gettime dup2 fdatasync fls ftruncate \ - gethostbyname gethostname getpagesize localtime_r memchr memset \ + gethostbyname gethostname getpagesize localtime_r memchr memrchr memset \ mkdir munmap putenv realpath rmdir socket strchr strcspn strdup \ strncasecmp strndup strnlen strpbrk strrchr strstr strtol strtoul \ strtoull dirfd gethostbyname2 getipnodebyname epoll_create1 \ @@ -200,15 +217,18 @@ AC_CHECK_LIB([rt], [clock_gettime, timer_create, timer_settime, timer_delete]) AC_CHECK_LIB([dl], [dlopen], [ have_libdl=yes libdl_name=dl + DL_LIBS="-ldl" ], [ # libdl not found, check for dlopen in libc. AC_CHECK_LIB([c], [dlopen], [ have_libc_dl=yes libdl_name=c + DL_LIBS="-lc" ], [ AC_MSG_ERROR([Cannot find dlopen in libdl nor libc. Use [LDFLAGS]=-Ldir to specify their location.]) ]) ]) +AC_SUBST(DL_LIBS) # Check if libdl has dlmopen support. AH_TEMPLATE([HAVE_DLMOPEN], ["Define to 1 if dlmopen is available."]) @@ -366,7 +386,8 @@ _AC_DEFINE_QUOTED_AND_SUBST([DEFAULT_AGENT_BIND_ADDRESS], [localhost]) _AC_DEFINE_QUOTED_AND_SUBST([DEFAULT_NETWORK_CONTROL_BIND_ADDRESS], [0.0.0.0]) _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_ROTATE_PENDING_RELAY_TIMER], [200000]) +_AC_DEFINE_AND_SUBST([DEFAULT_NETWORK_RELAYD_CTRL_MAX_PAYLOAD_SIZE], [134217728]) +_AC_DEFINE_AND_SUBST([DEFAULT_ROTATE_PENDING_TIMER], [500000]) # Command short descriptions _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ADD_CONTEXT], [Add context fields to a channel]) @@ -374,10 +395,10 @@ _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_CREATE], [Create 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 an automatic rotation schedule]) +_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 an automatic rotation schedule]) +_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_LOAD], [Load tracing session configurations]) @@ -389,6 +410,9 @@ _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_SNAPSHOT], [Snapshot buffers of current t _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_ROTATE], [Archive a tracing session’s current trace chunk]) _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]) @@ -552,20 +576,6 @@ AS_IF([test "x$with_lttng_ust" = "xyes"], AM_CONDITIONAL([HAVE_LIBLTTNG_UST_CTL], [test "x$with_lttng_ust" = "xyes"]) - -# check for dlopen -AC_CHECK_LIB([dl], [dlopen], - [DL_LIBS="-ldl"], - [ - #libdl not found, check for dlopen in libc. - AC_CHECK_LIB([c], [dlopen], - [DL_LIBS="-lc"], - [AC_MSG_FAILURE([Cannot find dlopen in libdl nor libc. Use [LDFLAGS]=-Ldir to specify their location.])] - ) - ] -) -AC_SUBST(DL_LIBS) - # Check for fmemopen AC_CHECK_LIB([c], [fmemopen], [ @@ -573,13 +583,6 @@ AC_CHECK_LIB([c], [fmemopen], ] ) -# Check for open_memstream -AC_CHECK_LIB([c], [open_memstream], -[ - AC_DEFINE_UNQUOTED([LTTNG_HAVE_OPEN_MEMSTREAM], 1, [Has open_memstream support.]) -] -) - # check for libpfm AC_CHECK_LIB([pfm], [pfm_initialize], [ @@ -587,15 +590,6 @@ AC_CHECK_LIB([pfm], [pfm_initialize], ]) AM_CONDITIONAL([LTTNG_TOOLS_BUILD_WITH_LIBPFM], [test "x$have_libpfm" = "xyes"]) -AC_ARG_ENABLE([git-version], - [AC_HELP_STRING([--disable-git-version], - [Do not use the git version for the build])], - [have_git_version=$enableval], [have_git_version=yes] -) - -AM_CONDITIONAL([LTTNG_TOOLS_BUILD_GIT_SOURCE], - [test "x${have_git_version}" = "xyes"]) - # For Python # SWIG version needed or newer: swig_version=2.0.0 @@ -685,11 +679,6 @@ if test "x$test_java_agent_jul" = "xyes" || test "x$test_java_agent_log4j" = "xy fi fi -# set $IN_GIT_REPO if we're in the Git repository; the `bootstrap` file -# is not distributed in tarballs -AS_IF([test -f "$srcdir/bootstrap"], [in_git_repo=yes], [in_git_repo=no]) -AM_CONDITIONAL([IN_GIT_REPO], [test "x$in_git_repo" = "xyes"]) - # enable building man pages (user's intention) AC_ARG_ENABLE( man-pages, @@ -934,7 +923,6 @@ AS_IF([test x$enable_bin_lttng_sessiond != xno], build_lib_relayd=yes build_lib_testpoint=yes build_lib_health=yes - build_lib_health=yes ] ) @@ -970,6 +958,51 @@ AS_IF([test x$build_lib_relayd = xyes], ] ) +# Find arch type +AS_CASE([$host_cpu], + [k1om], [ARCHTYPE="x86"], + [i386], [ARCHTYPE="x86"], + [i486], [ARCHTYPE="x86"], + [i586], [ARCHTYPE="x86"], + [i686], [ARCHTYPE="x86"], + [amd64], [ARCHTYPE="x86"], + [x86_64], [ARCHTYPE="x86"], + [powerpc], [ARCHTYPE="ppc"], + [ppc64], [ARCHTYPE="ppc"], + [powerpc64], [ARCHTYPE="ppc"], + [powerpc64le], [ARCHTYPE="ppc"], + [ppc], [ARCHTYPE="ppc"], + [s390], [ARCHTYPE="s390"], + [s390x], [ARCHTYPE="s390"], + [sparc], [ARCHTYPE="sparc64"], + [sparc64], [ARCHTYPE="sparc64"], + [alpha*], [ARCHTYPE="alpha"], + [ia64], [ARCHTYPE="ia64"], + [arm*], [ARCHTYPE="arm"], + [aarch64*], [ARCHTYPE="aarch64"], + [mips*], [ARCHTYPE="mips"], + [nios2*], [ARCHTYPE="nios2"], + [tile*], [ARCHTYPE="tile"], + [hppa*], [ARCHTYPE="hppa"], + [m68k], [ARCHTYPE="m68k"], + [riscv*], [ARCHTYPE="riscv"], + [ARCHTYPE="unknown"] +) + +AC_SUBST(ARCHTYPE) + +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]) + 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]) # Export binaries build conditions. AM_CONDITIONAL([BUILD_BIN_LTTNG], [test x$enable_bin_lttng != xno]) @@ -1096,6 +1129,7 @@ AC_CONFIG_FILES([ tests/regression/ust/buffers-pid/Makefile tests/regression/ust/periodical-metadata-flush/Makefile tests/regression/ust/multi-session/Makefile + tests/regression/ust/multi-lib/Makefile tests/regression/ust/overlap/Makefile tests/regression/ust/overlap/demo/Makefile tests/regression/ust/linking/Makefile @@ -1121,10 +1155,14 @@ AC_CONFIG_FILES([ tests/utils/tap/Makefile tests/utils/testapp/Makefile tests/utils/testapp/gen-ust-events/Makefile + tests/utils/testapp/gen-syscall-events-callstack/Makefile tests/utils/testapp/gen-ust-nevents/Makefile tests/utils/testapp/gen-ust-nevents-str/Makefile tests/utils/testapp/gen-syscall-events/Makefile tests/utils/testapp/gen-ust-tracef/Makefile + tests/utils/testapp/userspace-probe-elf-binary/Makefile + tests/utils/testapp/userspace-probe-elf-cxx-binary/Makefile + tests/utils/testapp/userspace-probe-sdt-binary/Makefile ]) # Inject variable into python test script.