mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +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>
54 lines
1.8 KiB
C
54 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
|