mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02: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
 |