From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758757AbcDANNU (ORCPT ); Fri, 1 Apr 2016 09:13:20 -0400 Received: from mail.kernel.org ([198.145.29.136]:54230 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758514AbcDANNT (ORCPT ); Fri, 1 Apr 2016 09:13:19 -0400 Date: Fri, 1 Apr 2016 10:13:12 -0300 From: Arnaldo Carvalho de Melo To: He Kuang Cc: peterz@infradead.org, mingo@redhat.com, alexander.shishkin@linux.intel.com, adrian.hunter@intel.com, jolsa@redhat.com, jpoimboe@redhat.com, sukadev@linux.vnet.ibm.com, eranian@google.com, wangnan0@huawei.com, linux-kernel@vger.kernel.org Subject: Re: [PATCH] perf tools: Fix build errors on tsc functions for archs other than x86 Message-ID: <20160401131312.GB7115@kernel.org> References: <1459482572-129494-1-git-send-email-hekuang@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1459482572-129494-1-git-send-email-hekuang@huawei.com> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Fri, Apr 01, 2016 at 03:49:32AM +0000, He Kuang escreveu: > Build errors on aarch64: > > libperf.a(libperf-in.o): In function `convert_timestamp': > util/jitdump.c:356: undefined reference to `tsc_to_perf_time' > collect2: error: ld returned 1 exit status > Makefile.perf:347: recipe for target 'perf' failed > make[1]: *** [perf] Error 1 > Makefile:68: recipe for target 'all' failed > make: *** [all] Error 2 Got it, my cross-compile environment for aarch64 doesn't build jitdump.c because it needs a package I haven't found in ubuntu: config/Makefile:416: No libcrypto.h found, disables jitted code injection, please install libssl-devel or libssl-dev minimal-ubuntu-x-arm64: Ok BTW, He, what environment do you use to build for arm64, is it a cross compile one? Yocto? - Arnaldo > Since tsc conversion functions were moved out from arch dir, move > 'tsc.h' out from x86 dir to make it possible to compile for other archs. > > Signed-off-by: He Kuang > --- > tools/perf/arch/x86/util/tsc.c | 1 - > tools/perf/arch/x86/util/tsc.h | 17 ----------------- > tools/perf/util/Build | 3 +-- > tools/perf/util/tsc.h | 11 ++++++++++- > 4 files changed, 11 insertions(+), 21 deletions(-) > delete mode 100644 tools/perf/arch/x86/util/tsc.h > > diff --git a/tools/perf/arch/x86/util/tsc.c b/tools/perf/arch/x86/util/tsc.c > index 70ff7c1..357f1b1 100644 > --- a/tools/perf/arch/x86/util/tsc.c > +++ b/tools/perf/arch/x86/util/tsc.c > @@ -7,7 +7,6 @@ > #include > #include "../../util/debug.h" > #include "../../util/tsc.h" > -#include "tsc.h" > > int perf_read_tsc_conversion(const struct perf_event_mmap_page *pc, > struct perf_tsc_conversion *tc) > diff --git a/tools/perf/arch/x86/util/tsc.h b/tools/perf/arch/x86/util/tsc.h > deleted file mode 100644 > index 2edc4d3..0000000 > --- a/tools/perf/arch/x86/util/tsc.h > +++ /dev/null > @@ -1,17 +0,0 @@ > -#ifndef TOOLS_PERF_ARCH_X86_UTIL_TSC_H__ > -#define TOOLS_PERF_ARCH_X86_UTIL_TSC_H__ > - > -#include > - > -struct perf_tsc_conversion { > - u16 time_shift; > - u32 time_mult; > - u64 time_zero; > -}; > - > -struct perf_event_mmap_page; > - > -int perf_read_tsc_conversion(const struct perf_event_mmap_page *pc, > - struct perf_tsc_conversion *tc); > - > -#endif /* TOOLS_PERF_ARCH_X86_UTIL_TSC_H__ */ > diff --git a/tools/perf/util/Build b/tools/perf/util/Build > index da48fd8..85ceff3 100644 > --- a/tools/perf/util/Build > +++ b/tools/perf/util/Build > @@ -69,8 +69,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 += tsc.o > libperf-y += cloexec.o > libperf-y += thread-stack.o > libperf-$(CONFIG_AUXTRACE) += auxtrace.o > diff --git a/tools/perf/util/tsc.h b/tools/perf/util/tsc.h > index 280ddc0..d5b11e2 100644 > --- a/tools/perf/util/tsc.h > +++ b/tools/perf/util/tsc.h > @@ -4,7 +4,16 @@ > #include > > #include "event.h" > -#include "../arch/x86/util/tsc.h" > + > +struct perf_tsc_conversion { > + u16 time_shift; > + u32 time_mult; > + u64 time_zero; > +}; > +struct perf_event_mmap_page; > + > +int perf_read_tsc_conversion(const struct perf_event_mmap_page *pc, > + struct perf_tsc_conversion *tc); > > u64 perf_time_to_tsc(u64 ns, struct perf_tsc_conversion *tc); > u64 tsc_to_perf_time(u64 cyc, struct perf_tsc_conversion *tc); > -- > 1.8.5.2