--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
Please unblock package linux-tools
- Build a linux-tools-3.16 package for arm64
- Ensure that we don't accidentally link perf against libbfd, which
has an incompatible licence. This is only happening in
wheezy-backports but could potentially happen for an unclean build
in jessie/sid.
unblock linux-tools/3.16-3
The following debdiff excludes the generated files debian/control,
debian/control.md5sum and debian/rules.gen.
Ben.
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 06:06:33.000000000 +0100
+++ linux-tools-3.16/debian/build/tools/perf/Makefile 2015-01-31 23:03:49.000000000 +0000
@@ -12,6 +12,9 @@
NO_LIBUNWIND=
else ifeq ($(DEB_HOST_ARCH_CPU),arm)
KERNEL_ARCH_PERF = arm
+else ifeq ($(DEB_HOST_ARCH_CPU),arm64)
+ KERNEL_ARCH_PERF = arm64
+ NO_LIBUNWIND=
else ifeq ($(DEB_HOST_ARCH_CPU),hppa)
KERNEL_ARCH_PERF = parisc
else ifeq ($(DEB_HOST_ARCH_CPU),i386)
@@ -35,9 +38,19 @@
KERNEL_ARCH_PERF = sparc
endif
-# - disable Gtk UI until it's more usable
-# - Include version in all directory names
-MAKE_PERF := $(MAKE) prefix=/usr perfexecdir=share/perf_$(VERSION)-core plugindir=/usr/lib/traceevent_$(VERSION)/plugins NO_GTK2=1 NO_PERL=1 V=1 HAVE_CPLUS_DEMANGLE=1 ARCH=$(KERNEL_ARCH_PERF) EXTRA_WARNINGS=-Wno-error NO_LIBUNWIND=$(NO_LIBUNWIND)
+MAKE_PERF := $(MAKE) prefix=/usr V=1 ARCH=$(KERNEL_ARCH_PERF) EXTRA_WARNINGS=-Wno-error NO_LIBUNWIND=$(NO_LIBUNWIND)
+
+# Disable Gtk UI until it's more usable
+MAKE_PERF += NO_GTK2=1
+
+# Include version in all directory names
+MAKE_PERF += perfexecdir=share/perf_$(VERSION)-core plugindir=/usr/lib/traceevent_$(VERSION)/plugins
+
+# perf can link against libbfd if available, but the result is
+# undistributable as they are licenced under GPL v2 and v3+
+# respectively. Override detection of libbfd and insist that
+# cplus_demangle() can be found in libiberty (LGPL v2.1+).
+MAKE_PERF += feature-libbfd=0 HAVE_CPLUS_DEMANGLE_SUPPORT=1
all:
ifdef KERNEL_ARCH_PERF
@@ -47,6 +60,11 @@
# run 'make install'.
+$(MAKE_PERF) -C $(top_srcdir)/tools/perf -f Makefile.perf O=$(CURDIR)/out all VERSION=$(VERSION) DESTDIR=dummy
+$(MAKE_PERF) -C $(top_srcdir)/tools/perf/Documentation O=$(CURDIR)/out man VERSION=$(VERSION)
+# Check that perf didn't get linked against libbfd
+ type ldd
+ ! ldd $(CURDIR)/out/perf | grep '\blibbfd'
+# Check that it includes cplus_demangle from libiberty
+ grep cplus_demangle $(CURDIR)/out/perf
endif
install:
diff -Nru linux-tools-3.16/debian/changelog linux-tools-3.16/debian/changelog
--- linux-tools-3.16/debian/changelog 2014-09-09 13:21:12.000000000 +0100
+++ linux-tools-3.16/debian/changelog 2015-02-02 22:05:59.000000000 +0000
@@ -1,3 +1,13 @@
+linux-tools (3.16-3) unstable; urgency=medium
+
+ * linux-tools: Fix build configuration to avoid linking perf with libbfd
+ (Closes: #763002)
+ * linux-tools: Add a check that perf is not linked with libbfd
+ * [arm64] Enable building linux-tools, thanks to Steve Capper
+ (Closes: #771340)
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 02 Feb 2015 22:05:59 +0000
+
linux-tools (3.16-2) unstable; urgency=medium
* linux-kbuild: Change the type headers used for devicetable-offsets.c
diff -Nru linux-tools-3.16/debian/patches/perf-tools-fix-arm64-build-error.patch linux-tools-3.16/debian/patches/perf-tools-fix-arm64-build-error.patch
--- linux-tools-3.16/debian/patches/perf-tools-fix-arm64-build-error.patch 1970-01-01 01:00:00.000000000 +0100
+++ linux-tools-3.16/debian/patches/perf-tools-fix-arm64-build-error.patch 2015-01-31 15:34:13.000000000 +0000
@@ -0,0 +1,39 @@
+From: Mark Salter <msalter@redhat.com>
+Date: Fri, 25 Jul 2014 18:02:46 -0400
+Subject: perf tools: Fix arm64 build error
+Origin: https://git.kernel.org/linus/7d885749b6de2c9a1168d566e2380207b9177108
+
+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>
+---
+ tools/perf/arch/arm64/include/perf_regs.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/tools/perf/arch/arm64/include/perf_regs.h b/tools/perf/arch/arm64/include/perf_regs.h
+index e9441b9..1d3f39c 100644
+--- a/tools/perf/arch/arm64/include/perf_regs.h
++++ b/tools/perf/arch/arm64/include/perf_regs.h
+@@ -6,6 +6,8 @@
+ #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 23:32:53.000000000 +0100
+++ linux-tools-3.16/debian/patches/series 2015-01-31 15:34:13.000000000 +0000
@@ -3,3 +3,4 @@
tools-perf-install.patch
usbip-document-tcp-wrappers.patch
kbuild-fix-recordmcount-dependency.patch
+perf-tools-fix-arm64-build-error.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 23:32:53.000000000 +0100
+++ linux-tools-3.16/debian/rules.real 2015-01-31 15:35:11.000000000 +0000
@@ -9,7 +9,7 @@
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)),)
+ifneq ($(filter alpha amd64 arm64 armel armhf hppa i386 powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64,$(DEB_BUILD_ARCH)),)
binary-arch: install-tools
endif
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 23:32:53.000000000 +0100
+++ linux-tools-3.16/debian/templates/control.main.in 2015-01-31 15:34:42.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: alpha amd64 arm64 armel armhf hppa i386 powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64
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 23:32:53.000000000 +0100
+++ linux-tools-3.16/debian/templates/control.source.in 2015-02-02 22:13:42.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 (<< 2.23.91.20131123-1), libnewt-dev, libnuma-dev [amd64 arm64 i386 powerpc ppc64 ppc64el], libperl-dev, libunwind8-dev [amd64 arm64 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/
-- System Information:
Debian Release: 8.0
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental')
Architecture: i386 (x86_64)
Foreign Architectures: amd64
Kernel: Linux 3.16.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
--- End Message ---