From: Namhyung Kim <namhyung@kernel.org>
To: He Kuang <hekuang@huawei.com>
Cc: acme@kernel.org, aaro.koskinen@iki.fi, wangnan0@huawei.com,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] perf: fix building error
Date: Sat, 28 Feb 2015 11:49:07 +0900 [thread overview]
Message-ID: <20150228024907.GB15964@danjae> (raw)
In-Reply-To: <1425031537-10042-1-git-send-email-hekuang@huawei.com>
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 <hekuang@huawei.com>
> ---
> 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
--
2.3.1
next prev parent reply other threads:[~2015-02-28 2:49 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-11 2:01 [PATCH] perf: fix building error in x86_64 He Kuang
2015-02-12 8:07 ` Namhyung Kim
2015-02-12 8:56 ` Hekuang
2015-02-13 5:31 ` Namhyung Kim
2015-02-13 7:11 ` [PATCH v2] " He Kuang
2015-02-19 10:56 ` Aaro Koskinen
2015-02-27 10:05 ` [PATCH] perf: fix building error He Kuang
2015-02-28 2:49 ` Namhyung Kim [this message]
2015-02-28 9:09 ` He Kuang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150228024907.GB15964@danjae \
--to=namhyung@kernel.org \
--cc=aaro.koskinen@iki.fi \
--cc=acme@kernel.org \
--cc=hekuang@huawei.com \
--cc=linux-kernel@vger.kernel.org \
--cc=wangnan0@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.