From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754676AbbIXM5J (ORCPT ); Thu, 24 Sep 2015 08:57:09 -0400 Received: from mx1.redhat.com ([209.132.183.28]:46736 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753148AbbIXM5I (ORCPT ); Thu, 24 Sep 2015 08:57:08 -0400 Date: Thu, 24 Sep 2015 14:57:03 +0200 From: Jiri Olsa To: "Naveen N. Rao" Cc: acme@kernel.org, eranian@google.com, linux-kernel@vger.kernel.org, mingo@redhat.com Subject: Re: [PATCH] perf record: Limit --intr-regs to platforms supporting PERF_REGS Message-ID: <20150924125703.GA11857@krava.redhat.com> References: <1443096718-11926-1-git-send-email-naveen.n.rao@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1443096718-11926-1-git-send-email-naveen.n.rao@linux.vnet.ibm.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Sep 24, 2015 at 05:41:58PM +0530, Naveen N. Rao wrote: > perf build currently fails on powerpc: > > LINK perf > libperf.a(libperf-in.o):(.toc+0x120): undefined reference to > `sample_reg_masks' > libperf.a(libperf-in.o):(.toc+0x130): undefined reference to > `sample_reg_masks' > collect2: error: ld returned 1 exit status > make[1]: *** [perf] Error 1 > make: *** [all] Error 2 > > This is due to parse-regs-options.c using sample_reg_masks, which is > defined only with CONFIG_PERF_REGS. > > In addition, perf record -I is only useful if the arch supports > PERF_REGS. Hence, let's expose -I conditionally. > > Signed-off-by: Naveen N. Rao hum, I wonder why we have sample_reg_masks defined as weak in util/perf_regs.c which is also built only via CONFIG_PERF_REGS I wonder we could get rid of the weak definition via attached patch, Stephane? anyway this looks ok Acked-by: Jiri Olsa thanks, jirka --- diff --git a/tools/perf/arch/x86/util/Build b/tools/perf/arch/x86/util/Build index ff63649fa9ac..e5627b3d1bb8 100644 --- a/tools/perf/arch/x86/util/Build +++ b/tools/perf/arch/x86/util/Build @@ -2,7 +2,7 @@ libperf-y += header.o libperf-y += tsc.o libperf-y += pmu.o libperf-y += kvm-stat.o -libperf-y += perf_regs.o +libperf-$(CONFIG_PERF_REGS) += perf_regs.o libperf-$(CONFIG_DWARF) += dwarf-regs.o diff --git a/tools/perf/util/perf_regs.c b/tools/perf/util/perf_regs.c index 885e8ac83997..43168fb0d9a2 100644 --- a/tools/perf/util/perf_regs.c +++ b/tools/perf/util/perf_regs.c @@ -2,10 +2,6 @@ #include "perf_regs.h" #include "event.h" -const struct sample_reg __weak sample_reg_masks[] = { - SMPL_REG_END -}; - int perf_reg_value(u64 *valp, struct regs_dump *regs, int id) { int i, idx = 0;