linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/1] fix perf build issue when ARCH=x86_64
@ 2017-04-05  6:25 jiada_wang
  2017-04-05  6:25 ` [PATCH v3 1/1] perf tools: fix perf build with ARCH=x86_64 jiada_wang
  0 siblings, 1 reply; 7+ messages in thread
From: jiada_wang @ 2017-04-05  6:25 UTC (permalink / raw)
  To: peterz, mingo, acme, alexander.shishkin
  Cc: jolsa, wangnan0, ravi.bangoria, mhiramat, linux-kernel, erosca,
	Jiada Wang

From: Jiada Wang <jiada_wang@mentor.com>

Changes from v3:
 replace ARCH with SRCARCH in perf

Changes from v2:
 added function purify-arch, transforms both HOSTARCH and ARCH
 to supported values

Jiada Wang (1):
  perf tools: fix perf build with ARCH=x86_64

 tools/perf/Makefile.config | 38 +++++++++++++++++++-------------------
 tools/perf/Makefile.perf   |  2 +-
 tools/perf/arch/Build      |  2 +-
 tools/perf/tests/Build     |  2 +-
 4 files changed, 22 insertions(+), 22 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v3 1/1] perf tools: fix perf build with ARCH=x86_64
  2017-04-05  6:25 [PATCH v3 0/1] fix perf build issue when ARCH=x86_64 jiada_wang
@ 2017-04-05  6:25 ` jiada_wang
  2017-04-09 17:27   ` Jiri Olsa
  0 siblings, 1 reply; 7+ messages in thread
From: jiada_wang @ 2017-04-05  6:25 UTC (permalink / raw)
  To: peterz, mingo, acme, alexander.shishkin
  Cc: jolsa, wangnan0, ravi.bangoria, mhiramat, linux-kernel, erosca,
	Jiada Wang

From: Jiada Wang <jiada_wang@mentor.com>

with commit: 0a943cb10ce78 (tools build: Add HOSTARCH Makefile variable)
the following build failure is seen when build with ARCH=x86_64

In file included from util/event.c:2:0:
    tools/include/uapi/linux/mman.h:4:27: fatal error: uapi/asm/mman.h: No such file or directory
    compilation terminated.

fix this issue by use SRCARCH instead of ARCH in perf.

Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
---
 tools/perf/Makefile.config | 38 +++++++++++++++++++-------------------
 tools/perf/Makefile.perf   |  2 +-
 tools/perf/arch/Build      |  2 +-
 tools/perf/tests/Build     |  2 +-
 4 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
index 76c84f0..123fd40 100644
--- a/tools/perf/Makefile.config
+++ b/tools/perf/Makefile.config
@@ -19,18 +19,18 @@ CFLAGS := $(EXTRA_CFLAGS) $(EXTRA_WARNINGS)
 
 include $(srctree)/tools/scripts/Makefile.arch
 
-$(call detected_var,ARCH)
+$(call detected_var,SRCARCH)
 
 NO_PERF_REGS := 1
 
 # Additional ARCH settings for ppc
-ifeq ($(ARCH),powerpc)
+ifeq ($(SRCARCH),powerpc)
   NO_PERF_REGS := 0
   LIBUNWIND_LIBS := -lunwind -lunwind-ppc64
 endif
 
 # Additional ARCH settings for x86
-ifeq ($(ARCH),x86)
+ifeq ($(SRCARCH),x86)
   $(call detected,CONFIG_X86)
   ifeq (${IS_64_BIT}, 1)
     CFLAGS += -DHAVE_ARCH_X86_64_SUPPORT -DHAVE_SYSCALL_TABLE -I$(OUTPUT)arch/x86/include/generated
@@ -43,12 +43,12 @@ ifeq ($(ARCH),x86)
   NO_PERF_REGS := 0
 endif
 
-ifeq ($(ARCH),arm)
+ifeq ($(SRCARCH),arm)
   NO_PERF_REGS := 0
   LIBUNWIND_LIBS = -lunwind -lunwind-arm
 endif
 
-ifeq ($(ARCH),arm64)
+ifeq ($(SRCARCH),arm64)
   NO_PERF_REGS := 0
   LIBUNWIND_LIBS = -lunwind -lunwind-aarch64
 endif
@@ -61,7 +61,7 @@ endif
 # Disable it on all other architectures in case libdw unwind
 # support is detected in system. Add supported architectures
 # to the check.
-ifneq ($(ARCH),$(filter $(ARCH),x86 arm))
+ifneq ($(SRCARCH),$(filter $(SRCARCH),x86 arm))
   NO_LIBDW_DWARF_UNWIND := 1
 endif
 
@@ -115,9 +115,9 @@ endif
 FEATURE_CHECK_CFLAGS-libbabeltrace := $(LIBBABELTRACE_CFLAGS)
 FEATURE_CHECK_LDFLAGS-libbabeltrace := $(LIBBABELTRACE_LDFLAGS) -lbabeltrace-ctf
 
-FEATURE_CHECK_CFLAGS-bpf = -I. -I$(srctree)/tools/include -I$(srctree)/tools/arch/$(ARCH)/include/uapi -I$(srctree)/tools/include/uapi
+FEATURE_CHECK_CFLAGS-bpf = -I. -I$(srctree)/tools/include -I$(srctree)/tools/arch/$(SRCARCH)/include/uapi -I$(srctree)/tools/include/uapi
 # include ARCH specific config
--include $(src-perf)/arch/$(ARCH)/Makefile
+-include $(src-perf)/arch/$(SRCARCH)/Makefile
 
 ifdef PERF_HAVE_ARCH_REGS_QUERY_REGISTER_OFFSET
   CFLAGS += -DHAVE_ARCH_REGS_QUERY_REGISTER_OFFSET
@@ -213,12 +213,12 @@ ifeq ($(DEBUG),0)
 endif
 
 INC_FLAGS += -I$(src-perf)/util/include
-INC_FLAGS += -I$(src-perf)/arch/$(ARCH)/include
+INC_FLAGS += -I$(src-perf)/arch/$(SRCARCH)/include
 INC_FLAGS += -I$(srctree)/tools/include/uapi
 INC_FLAGS += -I$(srctree)/tools/include/
-INC_FLAGS += -I$(srctree)/tools/arch/$(ARCH)/include/uapi
-INC_FLAGS += -I$(srctree)/tools/arch/$(ARCH)/include/
-INC_FLAGS += -I$(srctree)/tools/arch/$(ARCH)/
+INC_FLAGS += -I$(srctree)/tools/arch/$(SRCARCH)/include/uapi
+INC_FLAGS += -I$(srctree)/tools/arch/$(SRCARCH)/include/
+INC_FLAGS += -I$(srctree)/tools/arch/$(SRCARCH)/
 
 # $(obj-perf)      for generated common-cmds.h
 # $(obj-perf)/util for generated bison/flex headers
@@ -332,7 +332,7 @@ ifndef NO_LIBELF
 
   ifndef NO_DWARF
     ifeq ($(origin PERF_HAVE_DWARF_REGS), undefined)
-      msg := $(warning DWARF register mappings have not been defined for architecture $(ARCH), DWARF support disabled);
+      msg := $(warning DWARF register mappings have not been defined for architecture $(SRCARCH), DWARF support disabled);
       NO_DWARF := 1
     else
       CFLAGS += -DHAVE_DWARF_SUPPORT $(LIBDW_CFLAGS)
@@ -357,7 +357,7 @@ ifndef NO_LIBELF
         CFLAGS += -DHAVE_BPF_PROLOGUE
         $(call detected,CONFIG_BPF_PROLOGUE)
       else
-        msg := $(warning BPF prologue is not supported by architecture $(ARCH), missing regs_query_register_offset());
+        msg := $(warning BPF prologue is not supported by architecture $(SRCARCH), missing regs_query_register_offset());
       endif
     else
       msg := $(warning DWARF support is off, BPF prologue is disabled);
@@ -383,7 +383,7 @@ ifdef PERF_HAVE_JITDUMP
   endif
 endif
 
-ifeq ($(ARCH),powerpc)
+ifeq ($(SRCARCH),powerpc)
   ifndef NO_DWARF
     CFLAGS += -DHAVE_SKIP_CALLCHAIN_IDX
   endif
@@ -464,7 +464,7 @@ else
 endif
 
 ifndef NO_LOCAL_LIBUNWIND
-  ifeq ($(ARCH),$(filter $(ARCH),arm arm64))
+  ifeq ($(SRCARCH),$(filter $(SRCARCH),arm arm64))
     $(call feature_check,libunwind-debug-frame)
     ifneq ($(feature-libunwind-debug-frame), 1)
       msg := $(warning No debug_frame support found in libunwind);
@@ -728,7 +728,7 @@ ifeq (${IS_64_BIT}, 1)
       NO_PERF_READ_VDSO32 := 1
     endif
   endif
-  ifneq ($(ARCH), x86)
+  ifneq ($(SRCARCH), x86)
     NO_PERF_READ_VDSOX32 := 1
   endif
   ifndef NO_PERF_READ_VDSOX32
@@ -757,7 +757,7 @@ ifdef LIBBABELTRACE
 endif
 
 ifndef NO_AUXTRACE
-  ifeq ($(ARCH),x86)
+  ifeq ($(SRCARCH),x86)
     ifeq ($(feature-get_cpuid), 0)
       msg := $(warning Your gcc lacks the __get_cpuid() builtin, disables support for auxtrace/Intel PT, please install a newer gcc);
       NO_AUXTRACE := 1
@@ -860,7 +860,7 @@ sysconfdir = $(prefix)/etc
 ETC_PERFCONFIG = etc/perfconfig
 endif
 ifndef lib
-ifeq ($(ARCH)$(IS_64_BIT), x861)
+ifeq ($(SRCARCH)$(IS_64_BIT), x861)
 lib = lib64
 else
 lib = lib
diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
index 8bb16aa..4080f45 100644
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -226,7 +226,7 @@ endif
 
 ifeq ($(config),0)
 include $(srctree)/tools/scripts/Makefile.arch
--include arch/$(ARCH)/Makefile
+-include arch/$(SRCARCH)/Makefile
 endif
 
 # The FEATURE_DUMP_EXPORT holds location of the actual
diff --git a/tools/perf/arch/Build b/tools/perf/arch/Build
index 109eb75..d9b6af8 100644
--- a/tools/perf/arch/Build
+++ b/tools/perf/arch/Build
@@ -1,2 +1,2 @@
 libperf-y += common.o
-libperf-y += $(ARCH)/
+libperf-y += $(SRCARCH)/
diff --git a/tools/perf/tests/Build b/tools/perf/tests/Build
index 6676c2d..651e77a 100644
--- a/tools/perf/tests/Build
+++ b/tools/perf/tests/Build
@@ -73,7 +73,7 @@ $(OUTPUT)tests/llvm-src-relocation.c: tests/bpf-script-test-relocation.c tests/B
 	$(Q)sed -e 's/"/\\"/g' -e 's/\(.*\)/"\1\\n"/g' $< >> $@
 	$(Q)echo ';' >> $@
 
-ifeq ($(ARCH),$(filter $(ARCH),x86 arm arm64 powerpc))
+ifeq ($(SRCARCH),$(filter $(SRCARCH),x86 arm arm64 powerpc))
 perf-$(CONFIG_DWARF_UNWIND) += dwarf-unwind.o
 endif
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 1/1] perf tools: fix perf build with ARCH=x86_64
  2017-04-05  6:25 ` [PATCH v3 1/1] perf tools: fix perf build with ARCH=x86_64 jiada_wang
@ 2017-04-09 17:27   ` Jiri Olsa
  2017-04-10  2:43     ` Jiada Wang
  0 siblings, 1 reply; 7+ messages in thread
From: Jiri Olsa @ 2017-04-09 17:27 UTC (permalink / raw)
  To: jiada_wang
  Cc: peterz, mingo, acme, alexander.shishkin, jolsa, wangnan0,
	ravi.bangoria, mhiramat, linux-kernel, erosca

On Tue, Apr 04, 2017 at 11:25:44PM -0700, jiada_wang@mentor.com wrote:
> From: Jiada Wang <jiada_wang@mentor.com>
> 
> with commit: 0a943cb10ce78 (tools build: Add HOSTARCH Makefile variable)
> the following build failure is seen when build with ARCH=x86_64

is that described somewhere as a valid building interface?
I never use it so I have no idea.. would you describe your
build env/process?

> 
> In file included from util/event.c:2:0:
>     tools/include/uapi/linux/mman.h:4:27: fatal error: uapi/asm/mman.h: No such file or directory
>     compilation terminated.
> 

> fix this issue by use SRCARCH instead of ARCH in perf.

please describe also the the issue itself in the changelog, not just the fix


so objtool is using SRCARCH this way, I guess it's fine

if we go this way, you also need to change the pmu-events/Build
and there's some comment using $(ARCH) in util/header.c

thanks,
jirka

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 1/1] perf tools: fix perf build with ARCH=x86_64
  2017-04-09 17:27   ` Jiri Olsa
@ 2017-04-10  2:43     ` Jiada Wang
  2017-04-10  7:44       ` Jiri Olsa
  0 siblings, 1 reply; 7+ messages in thread
From: Jiada Wang @ 2017-04-10  2:43 UTC (permalink / raw)
  To: Jiri Olsa
  Cc: peterz, mingo, acme, alexander.shishkin, jolsa, wangnan0,
	ravi.bangoria, mhiramat, linux-kernel, erosca

Hello Jiri

On 04/09/2017 10:27 AM, Jiri Olsa wrote:
> On Tue, Apr 04, 2017 at 11:25:44PM -0700, jiada_wang@mentor.com wrote:
>> From: Jiada Wang<jiada_wang@mentor.com>
>>
>> with commit: 0a943cb10ce78 (tools build: Add HOSTARCH Makefile variable)
>> the following build failure is seen when build with ARCH=x86_64
> is that described somewhere as a valid building interface?
> I never use it so I have no idea.. would you describe your
> build env/process?
I used "ARCH=x86_64 make -C tools perf V=1" to build perf for x86_64 ARCH.

>> In file included from util/event.c:2:0:
>>      tools/include/uapi/linux/mman.h:4:27: fatal error: uapi/asm/mman.h: No such file or directory
>>      compilation terminated.
>>
>> fix this issue by use SRCARCH instead of ARCH in perf.
> please describe also the the issue itself in the changelog, not just the fix
I will update changelog with detail information about the issue in v4
>
>
> so objtool is using SRCARCH this way, I guess it's fine
>
> if we go this way, you also need to change the pmu-events/Build
> and there's some comment using $(ARCH) in util/header.c
will update pmu-events/Build in v4
> thanks,
> jirka
Thanks,
Jiada

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 1/1] perf tools: fix perf build with ARCH=x86_64
  2017-04-10  2:43     ` Jiada Wang
@ 2017-04-10  7:44       ` Jiri Olsa
  2017-04-17  9:31         ` Jiada Wang
  0 siblings, 1 reply; 7+ messages in thread
From: Jiri Olsa @ 2017-04-10  7:44 UTC (permalink / raw)
  To: Jiada Wang
  Cc: peterz, mingo, acme, alexander.shishkin, jolsa, wangnan0,
	ravi.bangoria, mhiramat, linux-kernel, erosca

On Sun, Apr 09, 2017 at 07:43:15PM -0700, Jiada Wang wrote:
> Hello Jiri
> 
> On 04/09/2017 10:27 AM, Jiri Olsa wrote:
> > On Tue, Apr 04, 2017 at 11:25:44PM -0700, jiada_wang@mentor.com wrote:
> > > From: Jiada Wang<jiada_wang@mentor.com>
> > > 
> > > with commit: 0a943cb10ce78 (tools build: Add HOSTARCH Makefile variable)
> > > the following build failure is seen when build with ARCH=x86_64
> > is that described somewhere as a valid building interface?
> > I never use it so I have no idea.. would you describe your
> > build env/process?
> I used "ARCH=x86_64 make -C tools perf V=1" to build perf for x86_64 ARCH.

you're on x86 machine right? I don't see CROSS_COMPILE being used..

what's the purpose of the ARCH var setup then?

> 
> > > In file included from util/event.c:2:0:
> > >      tools/include/uapi/linux/mman.h:4:27: fatal error: uapi/asm/mman.h: No such file or directory
> > >      compilation terminated.
> > > 
> > > fix this issue by use SRCARCH instead of ARCH in perf.
> > please describe also the the issue itself in the changelog, not just the fix
> I will update changelog with detail information about the issue in v4
> > 
> > 
> > so objtool is using SRCARCH this way, I guess it's fine
> > 
> > if we go this way, you also need to change the pmu-events/Build
> > and there's some comment using $(ARCH) in util/header.c
> will update pmu-events/Build in v4

I'll check

thanks,
jirka

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 1/1] perf tools: fix perf build with ARCH=x86_64
  2017-04-10  7:44       ` Jiri Olsa
@ 2017-04-17  9:31         ` Jiada Wang
  2017-04-17 18:30           ` Jiri Olsa
  0 siblings, 1 reply; 7+ messages in thread
From: Jiada Wang @ 2017-04-17  9:31 UTC (permalink / raw)
  To: Jiri Olsa
  Cc: peterz, mingo, acme, alexander.shishkin, jolsa, wangnan0,
	ravi.bangoria, mhiramat, linux-kernel, erosca

On 04/10/2017 12:44 AM, Jiri Olsa wrote:
> On Sun, Apr 09, 2017 at 07:43:15PM -0700, Jiada Wang wrote:
>> Hello Jiri
>>
>> On 04/09/2017 10:27 AM, Jiri Olsa wrote:
>>> On Tue, Apr 04, 2017 at 11:25:44PM -0700, jiada_wang@mentor.com wrote:
>>>> From: Jiada Wang<jiada_wang@mentor.com>
>>>>
>>>> with commit: 0a943cb10ce78 (tools build: Add HOSTARCH Makefile variable)
>>>> the following build failure is seen when build with ARCH=x86_64
>>> is that described somewhere as a valid building interface?
>>> I never use it so I have no idea.. would you describe your
>>> build env/process?
>> I used "ARCH=x86_64 make -C tools perf V=1" to build perf for x86_64 ARCH.
> you're on x86 machine right? I don't see CROSS_COMPILE being used..
>
> what's the purpose of the ARCH var setup then?
Sorry for late response.

Yes, I am on x86 machine, and want to build for x86_64,
I didn't mention CROSS_COMPILE option in my last reply is because no
matter what 'CROSS_COMPILE' is, the issue can be reproduced when 
ARCH=X86_64.

The full command I used to build perf, is somewhat near to
make -C tools perf V=2 ARCH=x86_64 CROSS_COMPILE=i686-pc-linux-gnc-g 
CC=i686-pc-linux-gnc-gcc

Thanks,
Jiada

>
>>>> In file included from util/event.c:2:0:
>>>>       tools/include/uapi/linux/mman.h:4:27: fatal error: uapi/asm/mman.h: No such file or directory
>>>>       compilation terminated.
>>>>
>>>> fix this issue by use SRCARCH instead of ARCH in perf.
>>> please describe also the the issue itself in the changelog, not just the fix
>> I will update changelog with detail information about the issue in v4
>>>
>>> so objtool is using SRCARCH this way, I guess it's fine
>>>
>>> if we go this way, you also need to change the pmu-events/Build
>>> and there's some comment using $(ARCH) in util/header.c
>> will update pmu-events/Build in v4
> I'll check
>
> thanks,
> jirka

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 1/1] perf tools: fix perf build with ARCH=x86_64
  2017-04-17  9:31         ` Jiada Wang
@ 2017-04-17 18:30           ` Jiri Olsa
  0 siblings, 0 replies; 7+ messages in thread
From: Jiri Olsa @ 2017-04-17 18:30 UTC (permalink / raw)
  To: Jiada Wang
  Cc: peterz, mingo, acme, alexander.shishkin, jolsa, wangnan0,
	ravi.bangoria, mhiramat, linux-kernel, erosca

On Mon, Apr 17, 2017 at 02:31:28AM -0700, Jiada Wang wrote:
> On 04/10/2017 12:44 AM, Jiri Olsa wrote:
> > On Sun, Apr 09, 2017 at 07:43:15PM -0700, Jiada Wang wrote:
> > > Hello Jiri
> > > 
> > > On 04/09/2017 10:27 AM, Jiri Olsa wrote:
> > > > On Tue, Apr 04, 2017 at 11:25:44PM -0700, jiada_wang@mentor.com wrote:
> > > > > From: Jiada Wang<jiada_wang@mentor.com>
> > > > > 
> > > > > with commit: 0a943cb10ce78 (tools build: Add HOSTARCH Makefile variable)
> > > > > the following build failure is seen when build with ARCH=x86_64
> > > > is that described somewhere as a valid building interface?
> > > > I never use it so I have no idea.. would you describe your
> > > > build env/process?
> > > I used "ARCH=x86_64 make -C tools perf V=1" to build perf for x86_64 ARCH.
> > you're on x86 machine right? I don't see CROSS_COMPILE being used..
> > 
> > what's the purpose of the ARCH var setup then?
> Sorry for late response.
> 
> Yes, I am on x86 machine, and want to build for x86_64,
> I didn't mention CROSS_COMPILE option in my last reply is because no
> matter what 'CROSS_COMPILE' is, the issue can be reproduced when
> ARCH=X86_64.
> 
> The full command I used to build perf, is somewhat near to
> make -C tools perf V=2 ARCH=x86_64 CROSS_COMPILE=i686-pc-linux-gnc-g
> CC=i686-pc-linux-gnc-gcc

ook, I think I've already acked the v4 you sent

thanks,
jirka

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-04-17 18:31 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-05  6:25 [PATCH v3 0/1] fix perf build issue when ARCH=x86_64 jiada_wang
2017-04-05  6:25 ` [PATCH v3 1/1] perf tools: fix perf build with ARCH=x86_64 jiada_wang
2017-04-09 17:27   ` Jiri Olsa
2017-04-10  2:43     ` Jiada Wang
2017-04-10  7:44       ` Jiri Olsa
2017-04-17  9:31         ` Jiada Wang
2017-04-17 18:30           ` Jiri Olsa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).