Re: Build failure due to Intel PT

Adrian Hunter
2015-08-25T07:22:46Z

On 24/08/15 23:04, Arnaldo Carvalho de Melo wrote:
> Em Mon, Aug 24, 2015 at 11:51:31AM -0700, Sukadev Bhattiprolu escreveu:
>>
>> I am trying to build perf tool on Powerpc and get this:
>>
>> 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
>
>> Besides adding a 'default' case, can this file be skipped when building on
>> non-x86 architectures?
>
> Not sure, what about processing a perf.data file generated on a x86
> system using a PowerPC workstation?
>
> Adrian, I am assuming this is only used when postprocessing, is that
> right?

Yes. I think it is good design to allow perf.data files from any
architecture to be processed on any other architecture. Nevertheless,
specific features can be configured out as desired. For example,
in this case, the option NO_AUXTRACE would work e.g.

make NO_AUXTRACE=1 CROSS_COMPILE=powerpc-linux-gnu- ARCH=powerpc -C tools/perf

works for me.

So I will make a fix for the problems and send it in a moment.

Also, I must point point out that while I missed the 'default case' error,
the link errors are not entirely my fault, but were also a result of:

commit ecefde629fadd3fcca2ea4c6a799d6e6aab8781f
Date: Thu Feb 19 13:22:33 2015 -0500

perf tools: Only include tsc file for x86

The perf_time_to_tsc and tsc_to_perf_time functions are only used for x86.

Make inclusion of tsc.c dependent on x86 as well.

So it seems that people really don't want to support other architectures
by default. That would mean, for example, defaulting to NO_AUXTRACE=1
for non-x86. I will make a patch for that, and Arnaldo can decide.