Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame^] | 1 | From ff4d1d7e85be94ef43709cd698f0ec9a12f247d1 Mon Sep 17 00:00:00 2001 |
| 2 | From: Beniamin Sandu <beniaminsandu@gmail.com> |
| 3 | Date: Thu, 13 Aug 2020 16:24:39 +0300 |
| 4 | Subject: [PATCH 01/10] Kconfig: fix dependency issue when building in-tree |
| 5 | without CONFIG_FTRACE |
| 6 | |
| 7 | When building in-tree, one could disable CONFIG_FTRACE from kernel |
| 8 | config which will leave CONFIG_TRACEPOINTS selected by LTTNG modules, |
| 9 | but generate a lot of linker errors like below because it leaves out |
| 10 | other stuff, e.g.: |
| 11 | |
| 12 | trace.c:(.text+0xd86b): undefined reference to `trace_event_buffer_reserve' |
| 13 | ld: trace.c:(.text+0xd8de): undefined reference to `trace_event_buffer_commit' |
| 14 | ld: trace.c:(.text+0xd926): undefined reference to `event_triggers_call' |
| 15 | ld: trace.c:(.text+0xd942): undefined reference to `trace_event_ignore_this_pid' |
| 16 | ld: net/mac80211/trace.o: in function `trace_event_raw_event_drv_tdls_cancel_channel_switch': |
| 17 | |
| 18 | It appears to be caused by the fact that TRACE_EVENT macros in the Linux |
| 19 | kernel depend on the Ftrace ring buffer as soon as CONFIG_TRACEPOINTS is |
| 20 | enabled. |
| 21 | |
| 22 | Steps to reproduce: |
| 23 | |
| 24 | - Get a clone of an upstream stable kernel and use scripts/built-in.sh on it |
| 25 | |
| 26 | - Configure a standard x86-64 build, enable built-in LTTNG but disable |
| 27 | CONFIG_FTRACE from Kernel Hacking-->Tracers using menuconfig |
| 28 | |
| 29 | - Build will fail at linking stage |
| 30 | |
| 31 | Upstream-Status: Backport |
| 32 | |
| 33 | Signed-off-by: Beniamin Sandu <beniaminsandu@gmail.com> |
| 34 | Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> |
| 35 | --- |
| 36 | Kconfig | 2 +- |
| 37 | 1 file changed, 1 insertion(+), 1 deletion(-) |
| 38 | |
| 39 | diff --git a/Kconfig b/Kconfig |
| 40 | index acdab73..10eccff 100644 |
| 41 | --- a/Kconfig |
| 42 | +++ b/Kconfig |
| 43 | @@ -2,7 +2,7 @@ |
| 44 | |
| 45 | config LTTNG |
| 46 | tristate "LTTng support" |
| 47 | - select TRACEPOINTS |
| 48 | + select TRACING |
| 49 | help |
| 50 | LTTng is an open source tracing framework for Linux. |
| 51 | |
| 52 | -- |
| 53 | 2.19.1 |
| 54 | |