Introduce LTTNG_UST_MAP_POPULATE_POLICY environment variable
[lttng-ust.git] / README.md
index 84728dbbe21ba94e99f8debf569608158ffc9e11..657cba85e45edbf031a6576fe5284ce0f2bcbf22 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,3 +1,9 @@
+<!--
+SPDX-FileCopyrightText: 2023 EfficiOS, Inc.
+
+SPDX-License-Identifier: CC-BY-4.0
+-->
+
 LTTng-UST
 =========
 
@@ -11,8 +17,8 @@ user space tracing helpers for any application.
 Prerequisites
 -------------
 
-LTTng-UST depends on [liburcu](http://liburcu.org/) v0.7.2 at build and
-run times.
+LTTng-UST depends on **[liburcu](http://liburcu.org/) >= 0.12** at build
+time. It also optionally depends on libnuma.
 
 
 Building
@@ -24,14 +30,17 @@ This source tree is based on the Autotools suite from GNU to simplify
 portability. Here are some things you should have on your system in order to
 compile the Git repository tree:
 
-  - GNU Autotools (Automake >= 1.10, Autoconf >= 2.50, Autoheader >= 2.50;
+  - [GNU Autotools](http://www.gnu.org/software/autoconf/)
+    (**Automake >= 1.12**, **Autoconf >= 2.69**,
+    **Autoheader >= 2.69**;
     make sure your system-wide `automake` points to a recent version!)
-  - [GNU Libtool](http://www.gnu.org/software/autoconf/) >= 2.2
+  - **[GNU Libtool](https://www.gnu.org/software/libtool/) >= 2.2**
+  - **[pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/)**
 
 
 ### Optional dependencies
 
-Optional packages to build LTTng-tools man pages:
+Optional packages to build LTTng-ust man pages:
 
   - **[AsciiDoc](http://www.methods.co.nz/asciidoc/) >= 8.4.5**
     (previous versions may work, but were not tested)
@@ -89,11 +98,11 @@ This method links the tracepoint provider with the application,
 either directly or through a static library (`.a`):
 
   1. Into exactly one unit (C/C++ source file) of your _application_,
-     define `TRACEPOINT_DEFINE` and include the tracepoint provider
+     define `LTTNG_UST_TRACEPOINT_DEFINE` and include the tracepoint provider
      header.
   2. Include the tracepoint provider header into all C/C++ files using
      the provider and insert tracepoints using the `tracepoint()` macro.
-  3. Use `-I.` when compiling the unit defining `TRACEPOINT_DEFINE`
+  3. Use `-I.` when compiling the unit defining `LTTNG_UST_TRACEPOINT_DEFINE`
      (e.g., `tp.c`).
   4. Link the application with `-ldl` on Linux, or with `-lc` on BSD,
      and with `-llttng-ust`.
@@ -121,7 +130,7 @@ This method decouples the tracepoint provider from the application,
 making it dynamically loadable.
 
   1. Into exactly one unit of your _application_, define
-     `TRACEPOINT_DEFINE` _and_ `TRACEPOINT_PROBE_DYNAMIC_LINKAGE`,
+     `LTTNG_UST_TRACEPOINT_DEFINE` _and_ `LTTNG_UST_TRACEPOINT_PROBE_DYNAMIC_LINKAGE`,
      then include the tracepoint provider header.
   2. Include the tracepoint provider header into all C/C++ files using
      the provider and insert tracepoints using the `tracepoint()` macro.
@@ -168,6 +177,10 @@ human-readable text log.
     variable `LTTNG_UST_DEBUG` when launching the user application. It
     can also be enabled at build time by compiling LTTng-UST with
     `-DLTTNG_UST_DEBUG`.
+  - `liblttng-ust` abort on critical can be activated by setting the
+    environment variable `LTTNG_UST_ABORT_ON_CRITICAL` when launching the user
+    application. It can also be enabled at build time by compiling LTTng-UST with
+    `-DLTTNG_UST_ABORT_ON_CRITICAL`.
   - The environment variable `LTTNG_UST_REGISTER_TIMEOUT` can be used to
     specify how long the applications should wait for the session
     daemon  _registration done_ command before proceeding to execute the
@@ -187,8 +200,25 @@ human-readable text log.
 
 Since LTTng-UST 2.3, both tracepoints and tracepoint providers can be
 compiled in C++. To compile tracepoint probes in C++, you need
-G++ >= 4.7 or Clang.
+G++ >= 4.7 or Clang >= 4.0. The C++ compilers need to support C++11.
+
+
+Supported versions
+------------------
+
+The LTTng project supports the last two released stable versions
+(e.g. stable-2.13 and stable-2.12).
+
+Fixes are backported from the master branch to the last stable version
+unless those fixes would break the ABI or API. Those fixes may be backported
+to the second-last stable version, depending on complexity and ABI/API
+compatibility.
+
+Security fixes are backported from the master branch to both of the last stable
+version and the the second-last stable version.
 
+New features are integrated into the master branch and not backported to the
+last stable branch.
 
 Contact
 -------
@@ -197,6 +227,7 @@ Maintainer: [Mathieu Desnoyers](mailto:mathieu.desnoyers@efficios.com)
 
 Mailing list: [`lttng-dev@lists.lttng.org`](https://lttng.org/cgi-bin/mailman/listinfo/lttng-dev)
 
+Code review: [_lttng-ust_ project](https://review.lttng.org/q/project:lttng-ust) on LTTng Review
 
 Package contents
 ----------------
@@ -223,15 +254,21 @@ This package contains the following elements:
     It _has_ to be preloaded in order to hijack calls. In contrast,
     `liblttng-ust` may be linked at build time.
   - `liblttng-ust-java`: a simple library that uses JNI to allow tracing
-    in Java programs.
-  - `liblttng-ust-jul`: a package that includes a JNI library and a JAR
-    library to provide an LTTng-UST logging back-end for Java application
-    using Java Util Logging.
+    in Java programs. (Configure with `--enable-jni-interface`).
+  - `liblttng-ust-java-agent`: a package that includes a JNI library and a
+    JAR library to provide an LTTng-UST logging back-end for Java
+    applications using Java Util Logging or Log4j. (Configure with
+    `--enable-java-agent-jul` or `--enable-java-agent-log4j` or
+    `--enable-java-agent-log4j2` or `--enable-java-agent-all`).
   - `liblttng-ust-libc-wrapper`: an example library that can be
     preloaded to instrument some calls to libc (currently `malloc()` and
     `free()`) and to POSIX threads (mutexes currently instrumented) in
     any program without need to recompile it.
+  - `liblttng-ust-python-agent`: a library used by python-lttngust to allow
+    tracing in Python applications. (Configure with `--enable-python-agent`)
   - `libringbuffer`: the ring buffer implementation used within LTTng-UST.
+  - `python-lttngust`: a package to provide an LTTng-UST logging back-end
+    for Python applications using the standard logging framework.
   - `snprintf`: an asynchronous signal-safe version of `snprintf()`.
   - `tests`: various test programs.
   - `tools`: home of `lttng-gen-tp`.
This page took 0.024503 seconds and 4 git commands to generate.