Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751167AbbB1JKF (ORCPT ); Sat, 28 Feb 2015 04:10:05 -0500 Received: from szxga02-in.huawei.com ([119.145.14.65]:53804 "EHLO szxga02-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750814AbbB1JJw (ORCPT ); Sat, 28 Feb 2015 04:09:52 -0500 Message-ID: <54F185C0.1040706@huawei.com> Date: Sat, 28 Feb 2015 17:09:20 +0800 From: He Kuang User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Namhyung Kim CC: , , , Subject: Re: [PATCH] perf: fix building error References: <20150219105656.GA8558@fuloong-minipc.musicnaut.iki.fi> <1425031537-10042-1-git-send-email-hekuang@huawei.com> <20150228024907.GB15964@danjae> In-Reply-To: <20150228024907.GB15964@danjae> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.110.54.65] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2978 Lines: 90 Well, I've tested and it worked. On 2015/2/28 10:49, Namhyung Kim wrote: > Hi He, > > On Fri, Feb 27, 2015 at 06:05:37PM +0800, He Kuang wrote: >> When build with ARCH=x86_64/i386, perf failed to compile with following >> error: >> >> tests/builtin-test.o:(.data+0x158): undefined reference to `test__perf_time_to_tsc' >> collect2: error: ld returned 1 exit status >> Makefile.perf:632: recipe for target 'perf' failed >> ... >> >> Which is caused commit c6e5e9fbc3ea1 ("perf tools: Fix building error >> in x86_64 when dwarf unwind is on"), ARCH test in Makefile.perf >> conflicts with tests/builtin-test.c's __x86_64__. >> To x86/x86_64 platform, ARCH should always override to x86 while >> IS_64_BIT stands for the actual architecture. >> >> Signed-off-by: He Kuang >> --- >> tools/perf/config/Makefile.arch | 8 ++++++++ >> 1 file changed, 8 insertions(+) >> >> diff --git a/tools/perf/config/Makefile.arch b/tools/perf/config/Makefile.arch >> index ff95a68..05af152 100644 >> --- a/tools/perf/config/Makefile.arch >> +++ b/tools/perf/config/Makefile.arch >> @@ -29,3 +29,11 @@ ifeq ($(LP64), 1) >> else >> IS_64_BIT := 0 >> endif >> + >> +ifeq ($(ARCH), x86_64) >> + override ARCH := x86 >> +endif >> + >> +ifeq ($(ARCH), i386) >> + override ARCH := x86 >> +endif > It seems like we need a same sed script to be applied to ARCH then. > How about this? > > > diff --git a/tools/perf/config/Makefile.arch b/tools/perf/config/Makefile.arch > index ff95a68741d1..e29de6e3597d 100644 > --- a/tools/perf/config/Makefile.arch > +++ b/tools/perf/config/Makefile.arch > @@ -1,28 +1,15 @@ > +ifndef ARCH > +ARCH := $(shell uname -m 2>/dev/null || echo not) > +endif > > -uname_M := $(shell uname -m 2>/dev/null || echo not) > - > -RAW_ARCH := $(shell echo $(uname_M) | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \ > +ARCH := $(shell echo $(ARCH) | sed -e s/i.86/x86/ -e s/x86_64/x86/ \ > + -e s/sun4u/sparc64/ \ > -e s/arm.*/arm/ -e s/sa110/arm/ \ > -e s/s390x/s390/ -e s/parisc64/parisc/ \ > -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \ > -e s/sh[234].*/sh/ -e s/aarch64.*/arm64/ \ > -e s/tile.*/tile/ ) > > -# Additional ARCH settings for x86 > -ifeq ($(RAW_ARCH),i386) > - ARCH ?= x86 > -endif > - > -ifeq ($(RAW_ARCH),x86_64) > - ARCH ?= x86 > - > - ifneq (, $(findstring m32,$(CFLAGS))) > - RAW_ARCH := x86_32 > - endif > -endif > - > -ARCH ?= $(RAW_ARCH) > - > LP64 := $(shell echo __LP64__ | ${CC} ${CFLAGS} -E -x c - | tail -n 1) > ifeq ($(LP64), 1) > IS_64_BIT := 1 -- 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/