소스 검색

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>
Philippe Proulx 8 년 전
부모
커밋
625af098cd

+ 77 - 0
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
+

+ 3 - 0
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.

+ 11 - 1
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))