commit:     2a84d30e55502c01c27fa176e3e09c09c59361d7
Author:     Naohiro Aota <naota <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 16 13:22:46 2015 +0000
Commit:     Naohiro Aota <naota <AT> gentoo <DOT> org>
CommitDate: Sun Aug 16 13:24:49 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2a84d30e

dev-util/perf: fix install dir

perf binary and libs are accidentaly installed under / not /usr. Add a
patch to fix "prefix=" behavior and reuse prefix argument.

 dev-util/perf/files/perf-4.1.5-prefix.patch        | 43 ++++++++++++++++++++++
 .../{perf-4.1.5.ebuild => perf-4.1.5-r1.ebuild}    |  4 +-
 2 files changed, 46 insertions(+), 1 deletion(-)

diff --git a/dev-util/perf/files/perf-4.1.5-prefix.patch 
b/dev-util/perf/files/perf-4.1.5-prefix.patch
new file mode 100644
index 0000000..0c4dff0
--- /dev/null
+++ b/dev-util/perf/files/perf-4.1.5-prefix.patch
@@ -0,0 +1,43 @@
+commit 75e84ab906ef8935cff3df3d8929f1bafea81599
+Author: Lukas Wunner <[email protected]>
+Date:   Thu Jun 18 13:00:32 2015 +0200
+
+    perf tools: Fix build breakage if prefix= is specified
+    
+    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'
+    
+    Signed-off-by: Lukas Wunner <[email protected]>
+    Acked-by: Jiri Olsa <[email protected]>
+    Cc: David Ahern <[email protected]>
+    Fixes: c819e2cf2eb6f65d3208d195d7a0edef6108d5
+    Link: 
http://lkml.kernel.org/r/[email protected]
+    Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
+
+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)
+ 

diff --git a/dev-util/perf/perf-4.1.5.ebuild 
b/dev-util/perf/perf-4.1.5-r1.ebuild
similarity index 98%
rename from dev-util/perf/perf-4.1.5.ebuild
rename to dev-util/perf/perf-4.1.5-r1.ebuild
index b49b73f..1323e67 100644
--- a/dev-util/perf/perf-4.1.5.ebuild
+++ b/dev-util/perf/perf-4.1.5-r1.ebuild
@@ -107,6 +107,8 @@ src_prepare() {
                epatch "${WORKDIR}"/${P}.patch
        fi
 
+       epatch "${FILESDIR}"/${P}-prefix.patch
+
        # Drop some upstream too-developer-oriented flags and fix the
        # Makefile in general
        sed -i \
@@ -140,10 +142,10 @@ perf_make() {
        # but it also wants to know about the split value -- i386/x86_64 vs just
        # x86.  We can get that by telling the func to use an older linux 
version.
        # It's kind of a hack, but not that bad ...
-       # prefix="/usr" bindir_relative="bin" \
        local arch=$(tc-arch-kernel)
        emake V=1 \
                CC="$(tc-getCC)" AR="$(tc-getAR)" \
+               prefix="/usr" bindir_relative="bin" \
                CFLAGS_OPTIMIZE="${CFLAGS}" \
                LDFLAGS_OPTIMIZE="${LDFLAGS}" \
                ARCH="${arch}" \

Reply via email to