From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752862AbbIBH2x (ORCPT ); Wed, 2 Sep 2015 03:28:53 -0400 Received: from terminus.zytor.com ([198.137.202.10]:44579 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752109AbbIBH2w (ORCPT ); Wed, 2 Sep 2015 03:28:52 -0400 Date: Wed, 2 Sep 2015 00:28:16 -0700 From: tip-bot for Stephane Eranian Message-ID: Cc: ak@linux.intel.com, acme@redhat.com, mingo@kernel.org, jolsa@kernel.org, adrian.hunter@intel.com, hpa@zytor.com, dsahern@gmail.com, peterz@infradead.org, linux-kernel@vger.kernel.org, namhyung@kernel.org, eranian@google.com, kan.liang@intel.com, tglx@linutronix.de Reply-To: linux-kernel@vger.kernel.org, peterz@infradead.org, eranian@google.com, namhyung@kernel.org, tglx@linutronix.de, kan.liang@intel.com, jolsa@kernel.org, acme@redhat.com, mingo@kernel.org, ak@linux.intel.com, adrian.hunter@intel.com, hpa@zytor.com, dsahern@gmail.com In-Reply-To: <1441099814-26783-1-git-send-email-eranian@google.com> References: <1441099814-26783-1-git-send-email-eranian@google.com> To: linux-tip-commits@vger.kernel.org Subject: [tip:perf/urgent] perf tools: Fix link time error with sample_reg_masks on non x86 Git-Commit-ID: af4aeadd8c04303c0aa2d112145c3627e2ebd026 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: af4aeadd8c04303c0aa2d112145c3627e2ebd026 Gitweb: http://git.kernel.org/tip/af4aeadd8c04303c0aa2d112145c3627e2ebd026 Author: Stephane Eranian AuthorDate: Tue, 1 Sep 2015 11:30:14 +0200 Committer: Arnaldo Carvalho de Melo CommitDate: Tue, 1 Sep 2015 13:04:41 -0300 perf tools: Fix link time error with sample_reg_masks on non x86 This patch makes perf compile on non x86 platforms by defining a weak symbol for sample_reg_masks[] in util/perf_regs.c. The patch also moves the REG() and REG_END() macros into the util/per_regs.h header file. The macros are renamed to SMPL_REG/SMPL_REG_END to avoid clashes with other header files. Signed-off-by: Stephane Eranian Acked-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Kan Liang Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1441099814-26783-1-git-send-email-eranian@google.com Signed-off-by: Arnaldo Carvalho de Melo --- tools/perf/arch/x86/util/perf_regs.c | 44 +++++++++++++++++------------------- tools/perf/util/perf_regs.c | 4 ++++ tools/perf/util/perf_regs.h | 2 ++ 3 files changed, 27 insertions(+), 23 deletions(-) diff --git a/tools/perf/arch/x86/util/perf_regs.c b/tools/perf/arch/x86/util/perf_regs.c index 087c84e..c5db14f 100644 --- a/tools/perf/arch/x86/util/perf_regs.c +++ b/tools/perf/arch/x86/util/perf_regs.c @@ -1,30 +1,28 @@ #include "../../perf.h" #include "../../util/perf_regs.h" -#define REG(n, b) { .name = #n, .mask = 1ULL << (b) } -#define REG_END { .name = NULL } const struct sample_reg sample_reg_masks[] = { - REG(AX, PERF_REG_X86_AX), - REG(BX, PERF_REG_X86_BX), - REG(CX, PERF_REG_X86_CX), - REG(DX, PERF_REG_X86_DX), - REG(SI, PERF_REG_X86_SI), - REG(DI, PERF_REG_X86_DI), - REG(BP, PERF_REG_X86_BP), - REG(SP, PERF_REG_X86_SP), - REG(IP, PERF_REG_X86_IP), - REG(FLAGS, PERF_REG_X86_FLAGS), - REG(CS, PERF_REG_X86_CS), - REG(SS, PERF_REG_X86_SS), + SMPL_REG(AX, PERF_REG_X86_AX), + SMPL_REG(BX, PERF_REG_X86_BX), + SMPL_REG(CX, PERF_REG_X86_CX), + SMPL_REG(DX, PERF_REG_X86_DX), + SMPL_REG(SI, PERF_REG_X86_SI), + SMPL_REG(DI, PERF_REG_X86_DI), + SMPL_REG(BP, PERF_REG_X86_BP), + SMPL_REG(SP, PERF_REG_X86_SP), + SMPL_REG(IP, PERF_REG_X86_IP), + SMPL_REG(FLAGS, PERF_REG_X86_FLAGS), + SMPL_REG(CS, PERF_REG_X86_CS), + SMPL_REG(SS, PERF_REG_X86_SS), #ifdef HAVE_ARCH_X86_64_SUPPORT - REG(R8, PERF_REG_X86_R8), - REG(R9, PERF_REG_X86_R9), - REG(R10, PERF_REG_X86_R10), - REG(R11, PERF_REG_X86_R11), - REG(R12, PERF_REG_X86_R12), - REG(R13, PERF_REG_X86_R13), - REG(R14, PERF_REG_X86_R14), - REG(R15, PERF_REG_X86_R15), + SMPL_REG(R8, PERF_REG_X86_R8), + SMPL_REG(R9, PERF_REG_X86_R9), + SMPL_REG(R10, PERF_REG_X86_R10), + SMPL_REG(R11, PERF_REG_X86_R11), + SMPL_REG(R12, PERF_REG_X86_R12), + SMPL_REG(R13, PERF_REG_X86_R13), + SMPL_REG(R14, PERF_REG_X86_R14), + SMPL_REG(R15, PERF_REG_X86_R15), #endif - REG_END + SMPL_REG_END }; diff --git a/tools/perf/util/perf_regs.c b/tools/perf/util/perf_regs.c index 43168fb..885e8ac 100644 --- a/tools/perf/util/perf_regs.c +++ b/tools/perf/util/perf_regs.c @@ -2,6 +2,10 @@ #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; diff --git a/tools/perf/util/perf_regs.h b/tools/perf/util/perf_regs.h index 92c1fff..2984dcc 100644 --- a/tools/perf/util/perf_regs.h +++ b/tools/perf/util/perf_regs.h @@ -9,6 +9,8 @@ struct sample_reg { const char *name; uint64_t mask; }; +#define SMPL_REG(n, b) { .name = #n, .mask = 1ULL << (b) } +#define SMPL_REG_END { .name = NULL } extern const struct sample_reg sample_reg_masks[];