perf tools: Fix build on powerpc broken by pt/bts
authorAdrian Hunter <adrian.hunter@intel.com>
Mon, 31 Aug 2015 18:39:44 +0000 (21:39 +0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 31 Aug 2015 18:47:33 +0000 (15:47 -0300)
It is theoretically possible to process perf.data files created on x86
and that contain Intel PT or Intel BTS data, on any other architecture,
which is why it is possible for there to be build errors on powerpc
caused by pt/bts.

The errors were:

util/intel-pt-decoder/intel-pt-insn-decoder.c: In function â€˜intel_pt_insn_decoder’:
util/intel-pt-decoder/intel-pt-insn-decoder.c:138:3: error: switch missing default case [-Werror=switch-default]
   switch (insn->immediate.nbytes) {
   ^
cc1: all warnings being treated as errors

linux-acme.git/tools/perf/perf-obj/libperf.a(libperf-in.o): In function `intel_pt_synth_branch_sample':
sources/linux-acme.git/tools/perf/util/intel-pt.c:871: undefined reference to `tsc_to_perf_time'
linux-acme.git/tools/perf/perf-obj/libperf.a(libperf-in.o): In function `intel_pt_sample':
sources/linux-acme.git/tools/perf/util/intel-pt.c:915: undefined reference to `tsc_to_perf_time'
sources/linux-acme.git/tools/perf/util/intel-pt.c:962: undefined reference to `tsc_to_perf_time'
linux-acme.git/tools/perf/perf-obj/libperf.a(libperf-in.o): In function `intel_pt_process_event':
sources/linux-acme.git/tools/perf/util/intel-pt.c:1454: undefined reference to `perf_time_to_tsc'

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Cc: Wang Nan <wangnan0@huawei.com>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1441046384-28663-1-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/Build
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c

index e912856cc4e5d67188ac206faad9f99df635203d..e79e4522368ad42fb81b81e4f788208650ac138a 100644 (file)
@@ -75,6 +75,7 @@ libperf-y += record.o
 libperf-y += srcline.o
 libperf-y += data.o
 libperf-$(CONFIG_X86) += tsc.o
+libperf-$(CONFIG_AUXTRACE) += tsc.o
 libperf-y += cloexec.o
 libperf-y += thread-stack.o
 libperf-$(CONFIG_AUXTRACE) += auxtrace.o
index 9e4eb8fcd5592c14c8c9812c5e4f821f0b8aeb12..d23138c06665a85d080c4ac668b828b3eb777724 100644 (file)
@@ -146,6 +146,9 @@ static void intel_pt_insn_decoder(struct insn *insn,
                case 4:
                        intel_pt_insn->rel = bswap_32(insn->immediate.value);
                        break;
+               default:
+                       intel_pt_insn->rel = 0;
+                       break;
                }
 #else
                intel_pt_insn->rel = insn->immediate.value;