public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf tools: Fix cross compiling error
@ 2015-08-28 12:54 Wang Nan
  2015-08-31 13:54 ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 4+ messages in thread
From: Wang Nan @ 2015-08-28 12:54 UTC (permalink / raw)
  To: acme; +Cc: linux-kernel, lizefan, pi3orama, Wang Nan

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.

Signed-off-by: Wang Nan <wangnan0@huawei.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/Build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/util/Build b/tools/perf/util/Build
index fd2f084..c8d9c7e 100644
--- a/tools/perf/util/Build
+++ b/tools/perf/util/Build
@@ -74,7 +74,7 @@ libperf-y += stat-shadow.o
 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


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] perf tools: Fix cross compiling error
  2015-08-28 12:54 [PATCH] perf tools: Fix cross compiling error Wang Nan
@ 2015-08-31 13:54 ` Arnaldo Carvalho de Melo
  2015-08-31 14:02   ` Jiri Olsa
  0 siblings, 1 reply; 4+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-08-31 13:54 UTC (permalink / raw)
  To: Wang Nan
  Cc: linux-kernel, lizefan, pi3orama, Jiri Olsa, Adrian Hunter,
	Arnaldo Carvalho de Melo

Em Fri, Aug 28, 2015 at 12:54:02PM +0000, Wang Nan escreveu:
> 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.

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.

Adding Jiri and Adrian to the CC list.

- Arnaldo
 
> Signed-off-by: Wang Nan <wangnan0@huawei.com>
> Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> ---
>  tools/perf/util/Build | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/perf/util/Build b/tools/perf/util/Build
> index fd2f084..c8d9c7e 100644
> --- a/tools/perf/util/Build
> +++ b/tools/perf/util/Build
> @@ -74,7 +74,7 @@ libperf-y += stat-shadow.o
>  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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] perf tools: Fix cross compiling error
  2015-08-31 13:54 ` Arnaldo Carvalho de Melo
@ 2015-08-31 14:02   ` Jiri Olsa
  2015-08-31 14:02     ` Adrian Hunter
  0 siblings, 1 reply; 4+ messages in thread
From: Jiri Olsa @ 2015-08-31 14:02 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Wang Nan, linux-kernel, lizefan, pi3orama, Jiri Olsa,
	Adrian Hunter, Arnaldo Carvalho de Melo

On Mon, Aug 31, 2015 at 10:54:51AM -0300, Arnaldo Carvalho de Melo wrote:
> Em Fri, Aug 28, 2015 at 12:54:02PM +0000, Wang Nan escreveu:
> > 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.
> 
> 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.
> 
> Adding Jiri and Adrian to the CC list.
> 
> - Arnaldo
>  
> > Signed-off-by: Wang Nan <wangnan0@huawei.com>
> > Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> > ---
> >  tools/perf/util/Build | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/tools/perf/util/Build b/tools/perf/util/Build
> > index fd2f084..c8d9c7e 100644
> > --- a/tools/perf/util/Build
> > +++ b/tools/perf/util/Build
> > @@ -74,7 +74,7 @@ libperf-y += stat-shadow.o
> >  libperf-y += record.o
> >  libperf-y += srcline.o
> >  libperf-y += data.o
> > -libperf-$(CONFIG_X86) += tsc.o
> > +libperf-$(CONFIG_AUXTRACE) += tsc.o

hum, didn't you guys want to change it like this:

  libperf-$(CONFIG_X86) += tsc.o
  libperf-$(CONFIG_AUXTRACE) += tsc.o

thats why I made that fix for duplicates objects in obj-y:
  0bdede8a3e4f tools build: Allow duplicate objects in the object list


jirka

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] perf tools: Fix cross compiling error
  2015-08-31 14:02   ` Jiri Olsa
@ 2015-08-31 14:02     ` Adrian Hunter
  0 siblings, 0 replies; 4+ messages in thread
From: Adrian Hunter @ 2015-08-31 14:02 UTC (permalink / raw)
  To: Jiri Olsa, Arnaldo Carvalho de Melo
  Cc: Wang Nan, linux-kernel, lizefan, pi3orama, Jiri Olsa,
	Arnaldo Carvalho de Melo

On 31/08/15 17:02, Jiri Olsa wrote:
> On Mon, Aug 31, 2015 at 10:54:51AM -0300, Arnaldo Carvalho de Melo wrote:
>> Em Fri, Aug 28, 2015 at 12:54:02PM +0000, Wang Nan escreveu:
>>> 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.
>>
>> 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.
>>
>> Adding Jiri and Adrian to the CC list.
>>
>> - Arnaldo
>>  
>>> Signed-off-by: Wang Nan <wangnan0@huawei.com>
>>> Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
>>> ---
>>>  tools/perf/util/Build | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/tools/perf/util/Build b/tools/perf/util/Build
>>> index fd2f084..c8d9c7e 100644
>>> --- a/tools/perf/util/Build
>>> +++ b/tools/perf/util/Build
>>> @@ -74,7 +74,7 @@ libperf-y += stat-shadow.o
>>>  libperf-y += record.o
>>>  libperf-y += srcline.o
>>>  libperf-y += data.o
>>> -libperf-$(CONFIG_X86) += tsc.o
>>> +libperf-$(CONFIG_AUXTRACE) += tsc.o
> 
> hum, didn't you guys want to change it like this:
> 
>   libperf-$(CONFIG_X86) += tsc.o
>   libperf-$(CONFIG_AUXTRACE) += tsc.o
> 
> thats why I made that fix for duplicates objects in obj-y:
>   0bdede8a3e4f tools build: Allow duplicate objects in the object list

Yes.  I need to send V2 of my original patch "perf tools: Fix build on
powerpc broken by pt/bts".  Will do shortly.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-08-31 14:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-28 12:54 [PATCH] perf tools: Fix cross compiling error Wang Nan
2015-08-31 13:54 ` Arnaldo Carvalho de Melo
2015-08-31 14:02   ` Jiri Olsa
2015-08-31 14:02     ` Adrian Hunter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox