summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilippe Proulx <eeppeliteloop@gmail.com>2016-11-02 02:55:08 -0400
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2016-11-02 23:08:00 +0100
commit625af098cd358e5dc3528b5bf39def755c6b65a6 (patch)
tree6f4d45cf5e425691581adfefac476770fad208af
parent106c7d30064cb17ae74708a9bc085e349cc735e2 (diff)
downloadbuildroot-625af098cd358e5dc3528b5bf39def755c6b65a6.tar.gz
buildroot-625af098cd358e5dc3528b5bf39def755c6b65a6.zip
lttng-babeltrace: add debug info support
Since Babeltrace 1.4, there is support for printing debug information along with compatible traces and event records. Babeltrace needs elfutils in this case. Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com> [Thomas: - add better description for 0002-m4-ax_lib_elfutils.m4-add-cache-variable.patch - use automatic dependency on elfutils rather than a very complicated Config.in symbol] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-rw-r--r--package/lttng-babeltrace/0002-m4-ax_lib_elfutils.m4-add-cache-variable.patch77
-rw-r--r--package/lttng-babeltrace/Config.in3
-rw-r--r--package/lttng-babeltrace/lttng-babeltrace.mk12
3 files changed, 91 insertions, 1 deletions
diff --git a/package/lttng-babeltrace/0002-m4-ax_lib_elfutils.m4-add-cache-variable.patch b/package/lttng-babeltrace/0002-m4-ax_lib_elfutils.m4-add-cache-variable.patch
new file mode 100644
index 0000000000..b16781419a
--- /dev/null
+++ b/package/lttng-babeltrace/0002-m4-ax_lib_elfutils.m4-add-cache-variable.patch
@@ -0,0 +1,77 @@
+From 697ab0905c59561562dc52cd3b925781e07814f3 Mon Sep 17 00:00:00 2001
+From: Philippe Proulx <eeppeliteloop@gmail.com>
+Date: Wed, 2 Nov 2016 01:40:12 -0400
+Subject: [PATCH] m4/ax_lib_elfutils.m4: add cache variable
+
+This patch adds an autoconf cache variable to override the
+AC_RUN_IFELSE() test result when cross-compiling.
+
+Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
+[Philippe: grabbed from this pull request:
+ https://github.com/efficios/babeltrace/pull/52
+]
+---
+ m4/ax_lib_elfutils.m4 | 32 +++++++++++++++++---------------
+ 1 file changed, 17 insertions(+), 15 deletions(-)
+
+diff --git a/m4/ax_lib_elfutils.m4 b/m4/ax_lib_elfutils.m4
+index fcfe06b..f4fcb0d 100644
+--- a/m4/ax_lib_elfutils.m4
++++ b/m4/ax_lib_elfutils.m4
+@@ -21,7 +21,9 @@
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #
+ # Check the currently installed version of elfutils by using the
+-# _ELFUTILS_PREREQ macro defined in elfutils/version.h.
++# `_ELFUTILS_PREREQ` macro defined in <elfutils/version.h>.
++#
++# The cache variable for this test is `bt_cv_lib_elfutils`.
+ #
+ # AX_LIB_ELFUTILS(MAJOR_VERSION, MINOR_VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
+ # ---------------------------------------------------------------------------
+@@ -29,7 +31,6 @@ AC_DEFUN([AX_LIB_ELFUTILS], [
+ m4_pushdef([major_version], [$1])
+ m4_pushdef([minor_version], [$2])
+
+- AC_MSG_CHECKING([for elfutils version >= major_version.minor_version])
+ m4_if([$#], 3, [
+ m4_pushdef([true_action], [$3])
+ ], [
+@@ -43,20 +44,21 @@ AC_DEFUN([AX_LIB_ELFUTILS], [
+ AC_MSG_ERROR(elfutils >= major_version.minor_version is required)])
+ ])
+
+- AC_RUN_IFELSE([
+- AC_LANG_SOURCE([
+- #include <stdlib.h>
+- #include <elfutils/version.h>
++ AC_CACHE_CHECK(
++ [for elfutils version >= major_version.minor_version],
++ [bt_cv_lib_elfutils], [
++ AC_RUN_IFELSE([AC_LANG_SOURCE([
++ #include <stdlib.h>
++ #include <elfutils/version.h>
++
++ int main(void) {
++ return _ELFUTILS_PREREQ(major_version, minor_version) ? EXIT_SUCCESS : EXIT_FAILURE;
++ }
++ ])], [bt_cv_lib_elfutils=yes], [bt_cv_lib_elfutils=no])
++ ]
++ )
+
+- int main(void) {
+- return _ELFUTILS_PREREQ(major_version, minor_version) ? EXIT_SUCCESS : EXIT_FAILURE;
+- }
+- ])
+- ],
+- echo yes
+- true_action,
+- echo no
+- false_action)
++ AS_IF([test "x$bt_cv_lib_elfutils" = "xyes"], [true_action], [false_action])
+
+ m4_popdef([false_action])
+ m4_popdef([true_action])
+--
+2.9.3
+
diff --git a/package/lttng-babeltrace/Config.in b/package/lttng-babeltrace/Config.in
index 95b635dfdd..9634a4d3a6 100644
--- a/package/lttng-babeltrace/Config.in
+++ b/package/lttng-babeltrace/Config.in
@@ -18,6 +18,9 @@ config BR2_PACKAGE_LTTNG_BABELTRACE
can decode and display LTTng traces, since the latter are
written using the CTF format.
+ To get support for debugging information, enable the
+ elfutils package.
+
Having this tool on the target is not mandatory. You can
transfer the binary trace output from the target to your
development workstation, and use babeltrace here.
diff --git a/package/lttng-babeltrace/lttng-babeltrace.mk b/package/lttng-babeltrace/lttng-babeltrace.mk
index deb2d071e1..59327dbf5d 100644
--- a/package/lttng-babeltrace/lttng-babeltrace.mk
+++ b/package/lttng-babeltrace/lttng-babeltrace.mk
@@ -10,10 +10,20 @@ LTTNG_BABELTRACE_SOURCE = babeltrace-$(LTTNG_BABELTRACE_VERSION).tar.bz2
LTTNG_BABELTRACE_LICENSE = MIT, LGPLv2.1 (include/babeltrace/list.h), GPLv2 (test code)
LTTNG_BABELTRACE_LICENSE_FILES = mit-license.txt gpl-2.0.txt LICENSE
LTTNG_BABELTRACE_DEPENDENCIES = popt util-linux libglib2 host-pkgconf
-LTTNG_BABELTRACE_CONF_OPTS += --disable-debug-info
HOST_LTTNG_BABELTRACE_DEPENDENCIES = \
host-popt host-util-linux host-libglib2 host-pkgconf
HOST_LTTNG_BABELTRACE_CONF_OPTS += --disable-debug-info
+# For 0002-m4-ax_lib_elfutils.m4-add-cache-variable.patch
+LTTNG_BABELTRACE_AUTORECONF = YES
+
+ifeq ($(BR2_PACKAGE_ELFUTILS),y)
+LTTNG_BABELTRACE_DEPENDENCIES += elfutils
+LTTNG_BABELTRACE_CONF_OPTS += --enable-debug-info
+LTTNG_BABELTRACE_CONF_ENV += bt_cv_lib_elfutils=yes
+else
+LTTNG_BABELTRACE_CONF_OPTS += --disable-debug-info
+endif
+
$(eval $(autotools-package))
$(eval $(host-autotools-package))
OpenPOWER on IntegriCloud