Package: linux-tools
Version: < 4.1
Severity: wishlist
Tags: patch

Following up on #778588, here's a patch to update linux-tools to 4.1.

Makefile.perf needs to either be invoked with NO_LZMA or liblzma-dev
needs to be added to the build deps. I opted for the latter.

The newly added tools-perf-prefix.patch was also submitted upstream
but it may be too late for inclusion in 4.1. We'll see. In any case
it's needed for the release candidates.

Best regards,

Lukas
Index: debian/patches/series
===================================================================
--- debian/patches/series       (revision 22738)
+++ debian/patches/series       (working copy)
@@ -1,6 +1,7 @@
 modpost-symbol-prefix.patch
 tools-perf-version.patch
 tools-perf-install.patch
+tools-perf-prefix.patch
 usbip-document-tcp-wrappers.patch
 kbuild-fix-recordmcount-dependency.patch
 usbip-include-uninstalled-linux-usbip-h.patch
Index: debian/patches/tools-perf-prefix.patch
===================================================================
--- debian/patches/tools-perf-prefix.patch      (revision 0)
+++ debian/patches/tools-perf-prefix.patch      (working copy)
@@ -0,0 +1,46 @@
+From 9dbbe6e7b533201668f5d1b72822ba0c8f68a071 Mon Sep 17 00:00:00 2001
+From: Lukas Wunner <lu...@wunner.de>
+Date: Thu, 18 Jun 2015 13:00:32 +0200
+Subject: [PATCH regression 4.0 -> 4.1] tools perf: Fix build breakage if
+ prefix= is specified
+To: Jiri Olsa <jo...@kernel.org>,
+    Arnaldo Carvalho de Melo <a...@kernel.org>
+Cc: linux-ker...@vger.kernel.org
+
+Invoking Makefile.perf with prefix= breaks the build since Makefile.perf
+hands that variable down to Makefile.build where it overrides
+    prefix       := $(subst ./,,$(OUTPUT)$(dir)/)
+
+leading to errors like this:
+    No rule to make target '/usrabspath.o', needed by '/usrlibperf-in.o'
+
+Fixes: c819e2cf2eb6f65d3208d195d7a0edef6108d5
+Signed-off-by: Lukas Wunner <lu...@wunner.de>
+---
+ tools/build/Makefile.build | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/tools/build/Makefile.build b/tools/build/Makefile.build
+index 10df572..98cfc38 100644
+--- a/tools/build/Makefile.build
++++ b/tools/build/Makefile.build
+@@ -94,12 +94,12 @@ obj-y        := $(patsubst %/, %/$(obj)-in.o, $(obj-y))
+ subdir-obj-y := $(filter %/$(obj)-in.o, $(obj-y))
+ 
+ # '$(OUTPUT)/dir' prefix to all objects
+-prefix       := $(subst ./,,$(OUTPUT)$(dir)/)
+-obj-y        := $(addprefix $(prefix),$(obj-y))
+-subdir-obj-y := $(addprefix $(prefix),$(subdir-obj-y))
++objprefix    := $(subst ./,,$(OUTPUT)$(dir)/)
++obj-y        := $(addprefix $(objprefix),$(obj-y))
++subdir-obj-y := $(addprefix $(objprefix),$(subdir-obj-y))
+ 
+ # Final '$(obj)-in.o' object
+-in-target := $(prefix)$(obj)-in.o
++in-target := $(objprefix)$(obj)-in.o
+ 
+ PHONY += $(subdir-y)
+ 
+-- 
+1.8.5.2 (Apple Git-48)
+
Index: debian/patches/tools-perf-version.patch
===================================================================
--- debian/patches/tools-perf-version.patch     (revision 22738)
+++ debian/patches/tools-perf-version.patch     (working copy)
@@ -7,18 +7,28 @@
 man page title.  Install bash_completion script for perf with a
 version-dependent name.  And do the same for trace.]
 
+--- a/tools/perf/util/Build
++++ b/tools/perf/util/Build
+@@ -127,6 +127,7 @@
+ CFLAGS_rbtree.o        += -Wno-unused-parameter 
-DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
+ CFLAGS_hweight.o       += -Wno-unused-parameter 
-DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
+ CFLAGS_parse-events.o  += -Wno-redundant-decls
++CFLAGS_vdso.o          += -DPERFEXECDIR='"$(perfexec_instdir_SQ)"'
+ 
+ $(OUTPUT)util/kallsyms.o: ../lib/symbol/kallsyms.c FORCE
+       $(call rule_mkdir)
+--- a/tools/perf/config/Makefile
++++ b/tools/perf/config/Makefile
+@@ -704,6 +704,7 @@
+ $(call detected_var,ETC_PERFCONFIG_SQ)
+ $(call detected_var,prefix_SQ)
+ $(call detected_var,perfexecdir_SQ)
++$(call detected_var,perfexec_instdir_SQ)
+ $(call detected_var,LIBDIR)
+ $(call detected_var,GTK_CFLAGS)
+ $(call detected_var,PERL_EMBED_CCOPTS)
 --- a/tools/perf/Makefile.perf
 +++ b/tools/perf/Makefile.perf
-@@ -756,6 +756,9 @@ $(OUTPUT)util/find_next_bit.o: ../lib/ut
- $(OUTPUT)util/parse-events.o: util/parse-events.c $(OUTPUT)PERF-CFLAGS
-       $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) -Wno-redundant-decls $<
- 
-+$(OUTPUT)util/vdso.o: util/vdso.c $(OUTPUT)PERF-CFLAGS
-+      $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) 
-DPERFEXECDIR='"$(perfexec_instdir_SQ)"' $<
-+
- $(OUTPUT)util/scripting-engines/trace-event-perl.o: 
util/scripting-engines/trace-event-perl.c $(OUTPUT)PERF-CFLAGS
-       $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) $(PERL_EMBED_CCOPTS) 
-Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow 
-Wno-undef -Wno-switch-default $<
- 
 @@ -923,18 +926,18 @@ install-gtk:
  install-bin: all install-gtk
        $(call QUIET_INSTALL, binaries) \
Index: debian/source/options
===================================================================
--- debian/source/options       (revision 22738)
+++ debian/source/options       (working copy)
@@ -1 +1,2 @@
 compression = "xz"
+extend-diff-ignore = "^tools/perf/\.config-detected$"
Index: debian/templates/control.source.in
===================================================================
--- debian/templates/control.source.in  (revision 22738)
+++ debian/templates/control.source.in  (working copy)
@@ -7,6 +7,6 @@
 Build-Depends:
  debhelper (>> 7), python,
  asciidoc, bison, flex, gcc-multilib [amd64 ppc64 s390x sparc64], 
libaudit-dev, libdw-dev, libelf-dev, libiberty-dev | binutils-dev (<< 
2.23.91.20131123-1), libnewt-dev, libnuma-dev [amd64 arm64 hppa i386 mips 
mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el sparc x32], 
libperl-dev, libunwind8-dev [amd64 armel armhf arm64 i386], python-dev, xmlto,
- autoconf, automake, libtool, libglib2.0-dev, libudev-dev, libwrap0-dev
+ autoconf, automake, libtool, libglib2.0-dev, libudev-dev, libwrap0-dev, 
liblzma-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 via email to