Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1216212 > unrolled thread

[PATCH v2] perf tools: Fix cross compiling error

Started byWang Nan <wangnan0@huawei.com>
First post2015-08-31 16:20 +0200
Last post2015-08-31 20:50 +0200
Articles 3 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH v2] perf tools: Fix cross compiling error Wang Nan <wangnan0@huawei.com> - 2015-08-31 16:20 +0200
    Re: [PATCH v2] perf tools: Fix cross compiling error Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-08-31 16:30 +0200
      Re: [PATCH v2] perf tools: Fix cross compiling error Adrian Hunter <adrian.hunter@intel.com> - 2015-08-31 20:50 +0200

#1216212 — [PATCH v2] perf tools: Fix cross compiling error

FromWang Nan <wangnan0@huawei.com>
Date2015-08-31 16:20 +0200
Subject[PATCH v2] perf tools: Fix cross compiling error
Message-ID<q3y6d-1Fs-15@gated-at.bofh.it>
Cross compiling perf to other platform failed due to missing symbol:

  ...
  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@huawei.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 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@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1216219

FromArnaldo Carvalho de Melo <acme@kernel.org>
Date2015-08-31 16:30 +0200
Message-ID<q3yfU-1QK-19@gated-at.bofh.it>
In reply to#1216212
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@huawei.com>
> Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> ---
>  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@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1216373

FromAdrian Hunter <adrian.hunter@intel.com>
Date2015-08-31 20:50 +0200
Message-ID<q3Cjv-7HJ-15@gated-at.bofh.it>
In reply to#1216219
On 31/08/2015 5:20 p.m., Arnaldo Carvalho de Melo wrote:
> 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?

There was another chunk as well so I sent V2 of the other patch.

>
> - 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@huawei.com>
>> Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
>> ---
>>   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@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web