mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-07 18:40:10 +00:00
Ingo reported that it was difficult to understand why libunwind support
didn't link even when he had the usual libunwind-dev files installed in
his machine.
This is because libunwind became opt-in, the user has to use
LIBUNWIND=1, as it was deemed stalled in its development/unsuitable for
use with perf, IIRC, and so we better use the elfutils equivalent
routine that we also supported for ages.
But the build message still printed:
Auto-detecting system features:
... libdw: [ on ]
... glibc: [ on ]
<SNIP>
... libcrypto: [ on ]
... libunwind: [ OFF ]
<SNIP>
Which is confusing, so allow for having a tip when 'perf version
--build-options' is used, and variants with 'perf check feature':
$ perf version --build-options | grep libunwind
libunwind: [ OFF ] # HAVE_LIBUNWIND_SUPPORT ( tip: Deprecated, use LIBUNWIND=1 and install libunwind-dev[el] to build with it )
$
$ perf check feature libunwind
libunwind: [ OFF ] # HAVE_LIBUNWIND_SUPPORT ( tip: Deprecated, use LIBUNWIND=1 and install libunwind-dev[el] to build with it )
$
The next patches will remove the opt-in libunwind FEATURES_DISPLAY.
Reported-by: Ingo Molnar <mingo@kernel.org>
Tested-by: Ingo Molnar <mingo@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Dmitriy Vyukov <dvyukov@google.com>
Cc: Howard Chu <howardchu95@gmail.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/Z--pWmTHGb62_83e@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
55 lines
1.8 KiB
C
55 lines
1.8 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef BUILTIN_H
|
|
#define BUILTIN_H
|
|
|
|
struct feature_status {
|
|
const char *name;
|
|
const char *macro;
|
|
const char *tip;
|
|
int is_builtin;
|
|
};
|
|
|
|
extern struct feature_status supported_features[];
|
|
|
|
void feature_status__printf(const struct feature_status *feature);
|
|
|
|
struct cmdnames;
|
|
|
|
void list_common_cmds_help(void);
|
|
const char *help_unknown_cmd(const char *cmd, struct cmdnames *main_cmds);
|
|
|
|
int cmd_annotate(int argc, const char **argv);
|
|
int cmd_bench(int argc, const char **argv);
|
|
int cmd_buildid_cache(int argc, const char **argv);
|
|
int cmd_buildid_list(int argc, const char **argv);
|
|
int cmd_check(int argc, const char **argv);
|
|
int cmd_config(int argc, const char **argv);
|
|
int cmd_c2c(int argc, const char **argv);
|
|
int cmd_diff(int argc, const char **argv);
|
|
int cmd_evlist(int argc, const char **argv);
|
|
int cmd_help(int argc, const char **argv);
|
|
int cmd_sched(int argc, const char **argv);
|
|
int cmd_kallsyms(int argc, const char **argv);
|
|
int cmd_list(int argc, const char **argv);
|
|
int cmd_record(int argc, const char **argv);
|
|
int cmd_report(int argc, const char **argv);
|
|
int cmd_stat(int argc, const char **argv);
|
|
int cmd_timechart(int argc, const char **argv);
|
|
int cmd_top(int argc, const char **argv);
|
|
int cmd_script(int argc, const char **argv);
|
|
int cmd_version(int argc, const char **argv);
|
|
int cmd_probe(int argc, const char **argv);
|
|
int cmd_kmem(int argc, const char **argv);
|
|
int cmd_lock(int argc, const char **argv);
|
|
int cmd_kvm(int argc, const char **argv);
|
|
int cmd_test(int argc, const char **argv);
|
|
int cmd_trace(int argc, const char **argv);
|
|
int cmd_inject(int argc, const char **argv);
|
|
int cmd_mem(int argc, const char **argv);
|
|
int cmd_data(int argc, const char **argv);
|
|
int cmd_ftrace(int argc, const char **argv);
|
|
int cmd_daemon(int argc, const char **argv);
|
|
int cmd_kwork(int argc, const char **argv);
|
|
|
|
#endif
|