Re: [PATCH v2] perf tools: Fix cross compiling error

From: Arnaldo Carvalho de Melo
Date: Mon Aug 31 2015 - 10:20:40 EST


Em Mon, Aug 31, 2015 at 02:09:41PM +0000, Wang Nan escreveu:
> Cross compiling perf to other platform failed due to missing symbol:

Adrian, I think this one covers what you would resend, no? If it does,
can I have your Acked-by?

- Arnaldo

> ...
> AR /pathofperf/libperf.a
> LD /pathofperf/tests/perf-in.o
> LD /pathofperf/perf-in.o
> LINK /pathofperf/perf
> /pathofperf/libperf.a(libperf-in.o): In function `intel_pt_synth_branch_sample':
> /usr/src/kernel/tools/perf/util/intel-pt.c:899: undefined reference to `tsc_to_perf_time'
> /pathofperf/libperf.a(libperf-in.o): In function `intel_pt_synth_transaction_sample':
> /usr/src/kernel/tools/perf/util/intel-pt.c:992: undefined reference to `tsc_to_perf_time'
> /pathofperf/libperf.a(libperf-in.o): In function `intel_pt_synth_instruction_sample':
> /usr/src/kernel/tools/perf/util/intel-pt.c:943: undefined reference to `tsc_to_perf_time'
> ...
>
> This is because we allow newly introduced intel-pt-decoder to be
> compiled to not only X86, but tsc.c which required by it is compiled
> for x86 only.
>
> This patch fix the compiling error by allow tsc.c to be compiled if
> CONFIG_AUXTRACE is set, no matter the target platform.
>
> Comment from Arnaldo:
>
> There were some changes in this area, i.e. x86 needs tsc, and auxtrace
> as well, so both should express that via:
>
> libperf-$(CONFIG_X86) += tsc.o
> libperf-$(CONFIG_AUXTRACE) += tsc.o
>
> Because on !x86 we want to process perf.data files containing Intel PT.
>
> Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>
> Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> ---
> tools/perf/util/Build | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/tools/perf/util/Build b/tools/perf/util/Build
> index fd2f084..e712311 100644
> --- a/tools/perf/util/Build
> +++ b/tools/perf/util/Build
> @@ -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
> --
> 1.8.3.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/