summary refs log tree commit diff
path: root/pkgs/os-specific/linux/kernel/perf-tools-fix-build-with-arch-x86_64.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux/kernel/perf-tools-fix-build-with-arch-x86_64.patch')
-rw-r--r--pkgs/os-specific/linux/kernel/perf-tools-fix-build-with-arch-x86_64.patch255
1 files changed, 255 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/kernel/perf-tools-fix-build-with-arch-x86_64.patch b/pkgs/os-specific/linux/kernel/perf-tools-fix-build-with-arch-x86_64.patch
new file mode 100644
index 000000000000..6d1b6835856b
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/perf-tools-fix-build-with-arch-x86_64.patch
@@ -0,0 +1,255 @@
+From bfb560d4184c5371f0628c2473eacfb9b4ee8519 Mon Sep 17 00:00:00 2001
+From: Jiada Wang <jiada_wang@mentor.com>
+Date: Sun, 9 Apr 2017 20:02:37 -0700
+Subject: [PATCH] perf tools: Fix build with ARCH=x86_64
+
+With commit: 0a943cb10ce78 (tools build: Add HOSTARCH Makefile variable)
+when building for ARCH=x86_64, ARCH=x86_64 is passed to perf instead of
+ARCH=x86, so the perf build process searchs header files from
+tools/arch/x86_64/include, which doesn't exist.
+
+The following build failure is seen:
+
+  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 using SRCARCH instead of ARCH in perf, just like the
+main kernel Makefile and tools/objtool's.
+
+Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
+Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+Acked-by: Jiri Olsa <jolsa@kernel.org>
+Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
+Cc: Andi Kleen <ak@linux.intel.com>
+Cc: Eugeniu Rosca <erosca@de.adit-jv.com>
+Cc: Jan Stancek <jstancek@redhat.com>
+Cc: Masami Hiramatsu <mhiramat@kernel.org>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
+Cc: Rui Teng <rui.teng@linux.vnet.ibm.com>
+Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
+Cc: Wang Nan <wangnan0@huawei.com>
+Fixes: 0a943cb10ce7 ("tools build: Add HOSTARCH Makefile variable")
+Link: http://lkml.kernel.org/r/1491793357-14977-2-git-send-email-jiada_wang@mentor.com
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/Makefile.config  | 38 +++++++++++++++++++-------------------
+ tools/perf/Makefile.perf    |  2 +-
+ tools/perf/arch/Build       |  2 +-
+ tools/perf/pmu-events/Build |  4 ++--
+ tools/perf/tests/Build      |  2 +-
+ tools/perf/util/header.c    |  2 +-
+ 6 files changed, 25 insertions(+), 25 deletions(-)
+
+diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
+index cffdd9cf3ebf..ff375310efe4 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
+@@ -205,12 +205,12 @@ ifeq ($(DEBUG),0)
+ endif
+ 
+ CFLAGS += -I$(src-perf)/util/include
+-CFLAGS += -I$(src-perf)/arch/$(ARCH)/include
++CFLAGS += -I$(src-perf)/arch/$(SRCARCH)/include
+ CFLAGS += -I$(srctree)/tools/include/uapi
+ CFLAGS += -I$(srctree)/tools/include/
+-CFLAGS += -I$(srctree)/tools/arch/$(ARCH)/include/uapi
+-CFLAGS += -I$(srctree)/tools/arch/$(ARCH)/include/
+-CFLAGS += -I$(srctree)/tools/arch/$(ARCH)/
++CFLAGS += -I$(srctree)/tools/arch/$(SRCARCH)/include/uapi
++CFLAGS += -I$(srctree)/tools/arch/$(SRCARCH)/include/
++CFLAGS += -I$(srctree)/tools/arch/$(SRCARCH)/
+ 
+ # $(obj-perf)      for generated common-cmds.h
+ # $(obj-perf)/util for generated bison/flex headers
+@@ -321,7 +321,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)
+@@ -346,7 +346,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);
+@@ -372,7 +372,7 @@ ifdef PERF_HAVE_JITDUMP
+   endif
+ endif
+ 
+-ifeq ($(ARCH),powerpc)
++ifeq ($(SRCARCH),powerpc)
+   ifndef NO_DWARF
+     CFLAGS += -DHAVE_SKIP_CALLCHAIN_IDX
+   endif
+@@ -453,7 +453,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);
+@@ -717,7 +717,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
+@@ -746,7 +746,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
+@@ -793,7 +793,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 ef52d1e3d431..2b92ffef554b 100644
+--- a/tools/perf/Makefile.perf
++++ b/tools/perf/Makefile.perf
+@@ -192,7 +192,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 109eb75cf7de..d9b6af837c7d 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/pmu-events/Build b/tools/perf/pmu-events/Build
+index 9213a1273697..999a4e878162 100644
+--- a/tools/perf/pmu-events/Build
++++ b/tools/perf/pmu-events/Build
+@@ -2,7 +2,7 @@ hostprogs := jevents
+ 
+ jevents-y	+= json.o jsmn.o jevents.o
+ pmu-events-y	+= pmu-events.o
+-JDIR		=  pmu-events/arch/$(ARCH)
++JDIR		=  pmu-events/arch/$(SRCARCH)
+ JSON		=  $(shell [ -d $(JDIR) ] &&				\
+ 			find $(JDIR) -name '*.json' -o -name 'mapfile.csv')
+ #
+@@ -10,4 +10,4 @@ JSON		=  $(shell [ -d $(JDIR) ] &&				\
+ # directory and create tables in pmu-events.c.
+ #
+ $(OUTPUT)pmu-events/pmu-events.c: $(JSON) $(JEVENTS)
+-	$(Q)$(call echo-cmd,gen)$(JEVENTS) $(ARCH) pmu-events/arch $(OUTPUT)pmu-events/pmu-events.c $(V)
++	$(Q)$(call echo-cmd,gen)$(JEVENTS) $(SRCARCH) pmu-events/arch $(OUTPUT)pmu-events/pmu-events.c $(V)
+diff --git a/tools/perf/tests/Build b/tools/perf/tests/Build
+index 8a4ce492f7b2..546250a273e7 100644
+--- a/tools/perf/tests/Build
++++ b/tools/perf/tests/Build
+@@ -71,7 +71,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
+ 
+diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
+index 5337f49db361..28bdb48357f0 100644
+--- a/tools/perf/util/header.c
++++ b/tools/perf/util/header.c
+@@ -826,7 +826,7 @@ static int write_group_desc(int fd, struct perf_header *h __maybe_unused,
+ 
+ /*
+  * default get_cpuid(): nothing gets recorded
+- * actual implementation must be in arch/$(ARCH)/util/header.c
++ * actual implementation must be in arch/$(SRCARCH)/util/header.c
+  */
+ int __weak get_cpuid(char *buffer __maybe_unused, size_t sz __maybe_unused)
+ {
+-- 
+2.15.1
+