[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#771340: linux-tools-3.16: perf not built for arm64



Package: linux-tools-3.16
Severity: important
Tags: patch

Dear Maintainer,

For arm64, perf is not being built for Jessie.

I have attached a patch which works for me on a Juno board.

A kernel patch is cherry-picked to fix a perf build bug (this only
affects the arm64 tree).

Also, I have modified the build-dep to explicitly pull in binutils-dev.
(I found that both binutils-dev and libiberty are needed for C++
demangling support).

Some other build logic is altered in particular the architectures list
is now set to: linux-any; and the install-tools rule is now an
unconditional dependency for binary-arch, this took me *ages* to
find :-(.

Please let me know if I've missed anything obvious or you would like me
to run additional tests.

Cheers,
-- 
Steve
diff -Nru linux-tools-3.16/debian/build/tools/perf/Makefile linux-tools-3.16/debian/build/tools/perf/Makefile
--- linux-tools-3.16/debian/build/tools/perf/Makefile	2014-09-09 05:06:33.000000000 +0000
+++ linux-tools-3.16/debian/build/tools/perf/Makefile	2014-11-28 14:08:45.000000000 +0000
@@ -12,6 +12,8 @@
   NO_LIBUNWIND=
 else ifeq ($(DEB_HOST_ARCH_CPU),arm)
   KERNEL_ARCH_PERF = arm
+else ifeq ($(DEB_HOST_ARCH_CPU),arm64)
+  KERNEL_ARCH_PERF = arm64
 else ifeq ($(DEB_HOST_ARCH_CPU),hppa)
   KERNEL_ARCH_PERF = parisc
 else ifeq ($(DEB_HOST_ARCH_CPU),i386)
diff -Nru linux-tools-3.16/debian/control linux-tools-3.16/debian/control
--- linux-tools-3.16/debian/control	2014-09-09 12:23:52.000000000 +0000
+++ linux-tools-3.16/debian/control	2014-11-28 15:09:07.000000000 +0000
@@ -4,7 +4,7 @@
 Maintainer: Debian Kernel Team <debian-kernel@lists.debian.org>
 Uploaders: Bastian Blank <waldi@debian.org>, Ben Hutchings <ben@decadent.org.uk>, Jonathan Nieder <jrnieder@gmail.com>
 Standards-Version: 3.9.4
-Build-Depends: debhelper (>> 7), python, asciidoc, bison, flex, libaudit-dev, libdw-dev, libelf-dev, libiberty-dev | binutils-dev (<< 2.23.91.20131123-1), libnewt-dev, libnuma-dev [amd64 i386 powerpc ppc64 ppc64el], libperl-dev, libunwind8-dev [amd64 i386], python-dev, xmlto, autoconf, automake, libtool, libglib2.0-dev, libudev-dev, libwrap0-dev
+Build-Depends: debhelper (>> 7), python, asciidoc, bison, flex, libaudit-dev, libdw-dev, libelf-dev, libiberty-dev, binutils-dev, libnewt-dev, libnuma-dev [amd64 i386 powerpc ppc64 ppc64el], libperl-dev, libunwind8-dev [amd64 i386], python-dev, xmlto, autoconf, automake, libtool, libglib2.0-dev, libudev-dev, libwrap0-dev
 Vcs-Svn: svn://svn.debian.org/svn/kernel/dists/trunk/linux-tools/
 Vcs-Browser: http://anonscm.debian.org/viewvc/kernel/dists/trunk/linux-tools/
 
@@ -17,7 +17,7 @@
 Multi-Arch: foreign
 
 Package: linux-tools-3.16
-Architecture: alpha amd64 armel armhf hppa i386 powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64
+Architecture: linux-any
 Section: devel
 Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, ${python:Depends}
 Recommends: linux-base (>= 3.4~)
diff -Nru linux-tools-3.16/debian/control.md5sum linux-tools-3.16/debian/control.md5sum
--- linux-tools-3.16/debian/control.md5sum	2014-09-09 12:23:52.000000000 +0000
+++ linux-tools-3.16/debian/control.md5sum	2014-11-28 15:09:07.000000000 +0000
@@ -1,4 +1,4 @@
 ac3acacf0cde6d2cc424f28241bb0857  debian/bin/gencontrol.py
 e22c0d8272eb6d18751657807e50bc3f  debian/changelog
-d85b23bb34d1fc562998ab0c6117ff28  debian/templates/control.main.in
-96d01c999dbb871c3c6fecaad4b4901c  debian/templates/control.source.in
+6167d5526bfd33090891989b0ab3d9ff  debian/templates/control.main.in
+39974d9874415912d0e40cef24b78c46  debian/templates/control.source.in
diff -Nru linux-tools-3.16/debian/patches/fix-arm64-build.patch linux-tools-3.16/debian/patches/fix-arm64-build.patch
--- linux-tools-3.16/debian/patches/fix-arm64-build.patch	1970-01-01 00:00:00.000000000 +0000
+++ linux-tools-3.16/debian/patches/fix-arm64-build.patch	2014-11-28 16:16:52.000000000 +0000
@@ -0,0 +1,44 @@
+From: Steve Capper <steve.capper@linaro.org>
+Date: Fri, 28 Nov 2014 16:15:00 +0000
+Subject: Cherry-pick perf fix for arm64
+
+This is a cherry-pick of the following commit, needed for perf to build
+on arm64.
+
+commit 7d885749b6de2c9a1168d566e2380207b9177108
+Author: Mark Salter <msalter@redhat.com>
+Commit: Arnaldo Carvalho de Melo <acme@redhat.com>
+
+    perf tools: Fix arm64 build error
+    
+    I'm seeing the following build error on arm64:
+    
+      In file included from util/event.c:3:0:
+      util/event.h:95:17: error: 'PERF_REGS_MAX' undeclared here (not in a function)
+        u64 cache_regs[PERF_REGS_MAX];
+                     ^
+    
+    This patch adds a PERF_REGS_MAX definition for arm64.
+    
+    Signed-off-by: Mark Salter <msalter@redhat.com>
+    Acked-by: Jean Pihet <jean.pihet@linaro.org>
+    Cc: Ingo Molnar <mingo@redhat.com>
+    Cc: Jean Pihet <jean.pihet@linaro.org>
+    Cc: Paul Mackerras <paulus@samba.org>
+    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
+    Link: http://lkml.kernel.org/r/1406325766-8085-1-git-send-email-msalter@redhat.com
+    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+
+
+Index: linux-tools-3.16/tools/perf/arch/arm64/include/perf_regs.h
+===================================================================
+--- linux-tools-3.16.orig/tools/perf/arch/arm64/include/perf_regs.h
++++ linux-tools-3.16/tools/perf/arch/arm64/include/perf_regs.h
+@@ -6,6 +6,7 @@
+ #include <asm/perf_regs.h>
+ 
+ #define PERF_REGS_MASK	((1ULL << PERF_REG_ARM64_MAX) - 1)
++#define PERF_REGS_MAX	PERF_REG_ARM64_MAX
+ #define PERF_REG_IP	PERF_REG_ARM64_PC
+ #define PERF_REG_SP	PERF_REG_ARM64_SP
+ 
diff -Nru linux-tools-3.16/debian/patches/series linux-tools-3.16/debian/patches/series
--- linux-tools-3.16/debian/patches/series	2014-09-08 22:32:53.000000000 +0000
+++ linux-tools-3.16/debian/patches/series	2014-11-28 14:18:51.000000000 +0000
@@ -3,3 +3,4 @@
 tools-perf-install.patch
 usbip-document-tcp-wrappers.patch
 kbuild-fix-recordmcount-dependency.patch
+fix-arm64-build.patch
diff -Nru linux-tools-3.16/debian/rules.real linux-tools-3.16/debian/rules.real
--- linux-tools-3.16/debian/rules.real	2014-09-08 22:32:53.000000000 +0000
+++ linux-tools-3.16/debian/rules.real	2014-11-28 15:39:07.000000000 +0000
@@ -8,10 +8,7 @@
 # includes any binNMU part.
 VERSION_DEBIAN_FULL := $(shell dpkg-parsechangelog | sed -ne 's,^Version: *\(.*\)$$,\1,p')
 
-binary-arch: install-kbuild install-usbip
-ifneq ($(filter alpha amd64 armel armhf hppa i386 powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64,$(DEB_BUILD_ARCH)),)
-  binary-arch: install-tools
-endif
+binary-arch: install-kbuild install-usbip install-tools
 
 build: $(STAMPS_DIR)/build
 
diff -Nru linux-tools-3.16/debian/templates/control.main.in linux-tools-3.16/debian/templates/control.main.in
--- linux-tools-3.16/debian/templates/control.main.in	2014-09-08 22:32:53.000000000 +0000
+++ linux-tools-3.16/debian/templates/control.main.in	2014-11-28 14:55:53.000000000 +0000
@@ -7,7 +7,7 @@
 
 Package: linux-tools-@version@
 Section: devel
-Architecture: alpha amd64 armel armhf hppa i386 powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64
+Architecture: linux-any
 Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, ${python:Depends}
 Recommends: linux-base (>= 3.4~)
 Suggests: linux-doc-@version@
diff -Nru linux-tools-3.16/debian/templates/control.source.in linux-tools-3.16/debian/templates/control.source.in
--- linux-tools-3.16/debian/templates/control.source.in	2014-09-08 22:32:53.000000000 +0000
+++ linux-tools-3.16/debian/templates/control.source.in	2014-11-28 15:00:53.000000000 +0000
@@ -6,7 +6,7 @@
 Standards-Version: 3.9.4
 Build-Depends:
  debhelper (>> 7), python,
- asciidoc, bison, flex, libaudit-dev, libdw-dev, libelf-dev, libiberty-dev | binutils-dev (<< 2.23.91.20131123-1), libnewt-dev, libnuma-dev [amd64 i386 powerpc ppc64 ppc64el], libperl-dev, libunwind8-dev [amd64 i386], python-dev, xmlto,
+ asciidoc, bison, flex, libaudit-dev, libdw-dev, libelf-dev, libiberty-dev, binutils-dev, libnewt-dev, libnuma-dev [amd64 i386 powerpc ppc64 ppc64el], libperl-dev, libunwind8-dev [amd64 i386], python-dev, xmlto,
  autoconf, automake, libtool, libglib2.0-dev, libudev-dev, libwrap0-dev
 Vcs-Svn: svn://svn.debian.org/svn/kernel/dists/trunk/linux-tools/
 Vcs-Browser: http://anonscm.debian.org/viewvc/kernel/dists/trunk/linux-tools/

Reply to: