Re: Build failure due to Intel PT

Adrian Hunter
2015-08-25T11:44:42Z

On 25/08/15 14:35, Arnaldo Carvalho de Melo wrote:
> Em Tue, Aug 25, 2015 at 10:20:00AM +0300, Adrian Hunter escreveu:
>> 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.
>
> Humm, misunderstandings happen, so if that thing needs to be reverted,
> we should do it, and fix the problem to keep the property of being able
> to 'perf report' any perf.data file, even the ones that were generated
> on another arch.
>
> And detect if there are cross compilers installed and add those to the
> 'make -C tools/perf build-perf'.
>
> I just installed gcc-powerpc64-linux-gnu, will try to use that with
> build-perf.

Just in case you didn't see them, note that I sent fixes:

[PATCH 1/2] perf tools: Fix build on powerpc broken by pt/bts
[PATCH 2/2] perf tools: Make NO_AUXTRACE default for non-x86 architectures