提交 e12b202f 编写于 作者: J Jiri Olsa 提交者: Arnaldo Carvalho de Melo

perf jitdump: Build only on supported archs

Build jitdump only on architectures defined in util/genelf.h file, to avoid
breaking the build on such arches.
Signed-off-by: NJiri Olsa <jolsa@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Borislav Petkov <bp@suse.de>
Cc: Colin Ian King <colin.king@canonical.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Davidlohr Bueso <dbueso@suse.com>
Cc: He Kuang <hekuang@huawei.com>
Cc: Mel Gorman <mgorman@suse.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/20160310164113.GA11357@krava.redhat.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
上级 9eb42dee
ifndef NO_DWARF ifndef NO_DWARF
PERF_HAVE_DWARF_REGS := 1 PERF_HAVE_DWARF_REGS := 1
endif endif
PERF_HAVE_JITDUMP := 1
ifndef NO_DWARF ifndef NO_DWARF
PERF_HAVE_DWARF_REGS := 1 PERF_HAVE_DWARF_REGS := 1
endif endif
PERF_HAVE_JITDUMP := 1
...@@ -3,3 +3,4 @@ PERF_HAVE_DWARF_REGS := 1 ...@@ -3,3 +3,4 @@ PERF_HAVE_DWARF_REGS := 1
endif endif
HAVE_KVM_STAT_SUPPORT := 1 HAVE_KVM_STAT_SUPPORT := 1
PERF_HAVE_JITDUMP := 1
...@@ -3,3 +3,4 @@ PERF_HAVE_DWARF_REGS := 1 ...@@ -3,3 +3,4 @@ PERF_HAVE_DWARF_REGS := 1
endif endif
HAVE_KVM_STAT_SUPPORT := 1 HAVE_KVM_STAT_SUPPORT := 1
PERF_HAVE_ARCH_REGS_QUERY_REGISTER_OFFSET := 1 PERF_HAVE_ARCH_REGS_QUERY_REGISTER_OFFSET := 1
PERF_HAVE_JITDUMP := 1
...@@ -73,7 +73,7 @@ static int perf_event__repipe_oe_synth(struct perf_tool *tool, ...@@ -73,7 +73,7 @@ static int perf_event__repipe_oe_synth(struct perf_tool *tool,
return perf_event__repipe_synth(tool, event); return perf_event__repipe_synth(tool, event);
} }
#if defined(HAVE_LIBELF_SUPPORT) && defined(HAVE_DWARF_SUPPORT) #ifdef HAVE_JITDUMP
static int perf_event__drop_oe(struct perf_tool *tool __maybe_unused, static int perf_event__drop_oe(struct perf_tool *tool __maybe_unused,
union perf_event *event __maybe_unused, union perf_event *event __maybe_unused,
struct ordered_events *oe __maybe_unused) struct ordered_events *oe __maybe_unused)
...@@ -245,7 +245,7 @@ static int perf_event__repipe_mmap(struct perf_tool *tool, ...@@ -245,7 +245,7 @@ static int perf_event__repipe_mmap(struct perf_tool *tool,
return err; return err;
} }
#if defined(HAVE_LIBELF_SUPPORT) && defined(HAVE_DWARF_SUPPORT) #ifdef HAVE_JITDUMP
static int perf_event__jit_repipe_mmap(struct perf_tool *tool, static int perf_event__jit_repipe_mmap(struct perf_tool *tool,
union perf_event *event, union perf_event *event,
struct perf_sample *sample, struct perf_sample *sample,
...@@ -283,7 +283,7 @@ static int perf_event__repipe_mmap2(struct perf_tool *tool, ...@@ -283,7 +283,7 @@ static int perf_event__repipe_mmap2(struct perf_tool *tool,
return err; return err;
} }
#if defined(HAVE_LIBELF_SUPPORT) && defined(HAVE_DWARF_SUPPORT) #ifdef HAVE_JITDUMP
static int perf_event__jit_repipe_mmap2(struct perf_tool *tool, static int perf_event__jit_repipe_mmap2(struct perf_tool *tool,
union perf_event *event, union perf_event *event,
struct perf_sample *sample, struct perf_sample *sample,
...@@ -778,7 +778,9 @@ int cmd_inject(int argc, const char **argv, const char *prefix __maybe_unused) ...@@ -778,7 +778,9 @@ int cmd_inject(int argc, const char **argv, const char *prefix __maybe_unused)
OPT_BOOLEAN('s', "sched-stat", &inject.sched_stat, OPT_BOOLEAN('s', "sched-stat", &inject.sched_stat,
"Merge sched-stat and sched-switch for getting events " "Merge sched-stat and sched-switch for getting events "
"where and how long tasks slept"), "where and how long tasks slept"),
#ifdef HAVE_JITDUMP
OPT_BOOLEAN('j', "jit", &inject.jit_mode, "merge jitdump files into perf.data file"), OPT_BOOLEAN('j', "jit", &inject.jit_mode, "merge jitdump files into perf.data file"),
#endif
OPT_INCR('v', "verbose", &verbose, OPT_INCR('v', "verbose", &verbose,
"be more verbose (show build ids, etc)"), "be more verbose (show build ids, etc)"),
OPT_STRING(0, "kallsyms", &symbol_conf.kallsyms_name, "file", OPT_STRING(0, "kallsyms", &symbol_conf.kallsyms_name, "file",
...@@ -795,7 +797,7 @@ int cmd_inject(int argc, const char **argv, const char *prefix __maybe_unused) ...@@ -795,7 +797,7 @@ int cmd_inject(int argc, const char **argv, const char *prefix __maybe_unused)
"perf inject [<options>]", "perf inject [<options>]",
NULL NULL
}; };
#if !defined(HAVE_LIBELF_SUPPORT) || !defined(HAVE_DWARF_SUPPORT) #ifndef HAVE_JITDUMP
set_option_nobuild(options, 'j', "jit", "NO_LIBELF=1", true); set_option_nobuild(options, 'j', "jit", "NO_LIBELF=1", true);
#endif #endif
argc = parse_options(argc, argv, options, inject_usage, 0); argc = parse_options(argc, argv, options, inject_usage, 0);
...@@ -833,7 +835,7 @@ int cmd_inject(int argc, const char **argv, const char *prefix __maybe_unused) ...@@ -833,7 +835,7 @@ int cmd_inject(int argc, const char **argv, const char *prefix __maybe_unused)
inject.tool.ordered_events = true; inject.tool.ordered_events = true;
inject.tool.ordering_requires_timestamps = true; inject.tool.ordering_requires_timestamps = true;
} }
#if defined(HAVE_LIBELF_SUPPORT) && defined(HAVE_DWARF_SUPPORT) #ifdef HAVE_JITDUMP
if (inject.jit_mode) { if (inject.jit_mode) {
inject.tool.mmap2 = perf_event__jit_repipe_mmap2; inject.tool.mmap2 = perf_event__jit_repipe_mmap2;
inject.tool.mmap = perf_event__jit_repipe_mmap; inject.tool.mmap = perf_event__jit_repipe_mmap;
......
...@@ -328,6 +328,13 @@ ifndef NO_LIBELF ...@@ -328,6 +328,13 @@ ifndef NO_LIBELF
endif # NO_LIBBPF endif # NO_LIBBPF
endif # NO_LIBELF endif # NO_LIBELF
ifdef PERF_HAVE_JITDUMP
ifndef NO_DWARF
$(call detected,CONFIG_JITDUMP)
CFLAGS += -DHAVE_JITDUMP
endif
endif
ifeq ($(ARCH),powerpc) ifeq ($(ARCH),powerpc)
ifndef NO_DWARF ifndef NO_DWARF
CFLAGS += -DHAVE_SKIP_CALLCHAIN_IDX CFLAGS += -DHAVE_SKIP_CALLCHAIN_IDX
......
...@@ -108,7 +108,7 @@ libperf-$(CONFIG_ZLIB) += zlib.o ...@@ -108,7 +108,7 @@ libperf-$(CONFIG_ZLIB) += zlib.o
libperf-$(CONFIG_LZMA) += lzma.o libperf-$(CONFIG_LZMA) += lzma.o
libperf-y += demangle-java.o libperf-y += demangle-java.o
ifdef CONFIG_DWARF ifdef CONFIG_JITDUMP
libperf-$(CONFIG_LIBELF) += jitdump.o libperf-$(CONFIG_LIBELF) += jitdump.o
libperf-$(CONFIG_LIBELF) += genelf.o libperf-$(CONFIG_LIBELF) += genelf.o
libperf-$(CONFIG_LIBELF) += genelf_debug.o libperf-$(CONFIG_LIBELF) += genelf_debug.o
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册