summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorReinette Chatre <reinette.chatre@intel.com>2015-08-11 14:12:20 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-08-12 15:43:36 -0700
commit08f9fbbc97909698b56200aa9be5fe50b99a44b2 (patch)
tree4663204289227e343a07d967062d65443bfc7992 /meta
parent5954c4e593070be7b1b8e26c1df0ec808a9366bd (diff)
downloadpoky-08f9fbbc97909698b56200aa9be5fe50b99a44b2.tar.gz
perf: fix build breakage on kernels after 4.1
A recent commit fixed perf build failures with a change that duplicates a fix that can be found in kernels after 4.1. Unfortunately there is a conflict between these two fixes and we see perf build failures when building perf in kernels that contain the fix already. The problem is that the fix from the recipe modifies the location of .config-detected to $(OUTPUT).config-detected. In a 4.2 kernel the location will be changed to $(OUTPUT)$(OUTPUT).config-detected. We change the recipe to require a space in the pattern to only change kernel sources that do not already place file in $(OUTPUT). The recent commit that introduced the build failure is: commit ea9016b60b47138bc58d84a06954b44527b20a19 Author: Richard Purdie <richard.purdie@linuxfoundation.org> Date: Sat Jul 25 14:37:58 2015 +0100 perf: Fix config file conflict with 4.1 kernels If you setup mutlitlibs and then: bitbake perf libb32-perf bitbake perf libb32-perf -c cleansstate bitbake perf libb32-perf you will see races where the two builds get confused about which directory they should be using and they corrupt each other. The issue is that .config-detected is created in ${S}, not $(OUTPUT). We can fix this by moving the file to $(OUTPUT). [YCOTO #8043] (From OE-Core rev: 00608cffffb586e8d2a2075117e710113c471448) (From OE-Core rev: 57df1ebd910e42af47a0039830a60f41a3bd29b6) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> The commit in the kernel source that fixes the problem from kernel side is: commit 642273795fa81da11290ffa90bce6ff242f2a7bb Author: Aaro Koskinen <aaro.koskinen@nokia.com> Date: Wed Jul 1 14:54:42 2015 +0300 perf tools: Create config.detected into OUTPUT directory Create config.detected into OUTPUT directory instead of source directory. This fixes parallel builds that share the same source directory. Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com> Acked-by: Jiri Olsa <jolsa@kernel.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1435751683-18500-1-git-send-email-aaro.koskinen@nokia.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> (From OE-Core rev: 6546771a502a09c63e33679be8784818be0ef93b) Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-kernel/perf/perf.bb7
1 files changed, 4 insertions, 3 deletions
diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb
index f8e80d0e48..e7ddfff83d 100644
--- a/meta/recipes-kernel/perf/perf.bb
+++ b/meta/recipes-kernel/perf/perf.bb
@@ -134,6 +134,7 @@ do_configure_prepend () {
134 # config/Makefile. 134 # config/Makefile.
135 # 135 #
136 # Also need to relocate .config-detected to $(OUTPUT)/config-detected 136 # Also need to relocate .config-detected to $(OUTPUT)/config-detected
137 # for kernel sources that do not already do this
137 # as two builds (e.g. perf and lib32-perf from mutlilib can conflict 138 # as two builds (e.g. perf and lib32-perf from mutlilib can conflict
138 # with each other if its in the shared source directory 139 # with each other if its in the shared source directory
139 # 140 #
@@ -141,15 +142,15 @@ do_configure_prepend () {
141 # Match $(prefix)/$(lib) and $(prefix)/lib 142 # Match $(prefix)/$(lib) and $(prefix)/lib
142 sed -i -e 's,^libdir = \($(prefix)/.*lib\),libdir ?= \1,' \ 143 sed -i -e 's,^libdir = \($(prefix)/.*lib\),libdir ?= \1,' \
143 -e 's,^perfexecdir = \(.*\),perfexecdir ?= \1,' \ 144 -e 's,^perfexecdir = \(.*\),perfexecdir ?= \1,' \
144 -e 's,\.config-detected,$(OUTPUT)/config-detected,g' \ 145 -e 's,\ .config-detected, $(OUTPUT)/config-detected,g' \
145 ${S}/tools/perf/config/Makefile 146 ${S}/tools/perf/config/Makefile
146 fi 147 fi
147 if [ -e "${S}/tools/perf/Makefile.perf" ]; then 148 if [ -e "${S}/tools/perf/Makefile.perf" ]; then
148 sed -i -e 's,\.config-detected,$(OUTPUT)/config-detected,g' \ 149 sed -i -e 's,\ .config-detected, $(OUTPUT)/config-detected,g' \
149 ${S}/tools/perf/Makefile.perf 150 ${S}/tools/perf/Makefile.perf
150 fi 151 fi
151 if [ -e "${S}/tools/build/Makefile.build" ]; then 152 if [ -e "${S}/tools/build/Makefile.build" ]; then
152 sed -i -e 's,\.config-detected,$(OUTPUT)/config-detected,g' \ 153 sed -i -e 's,\ .config-detected, $(OUTPUT)/config-detected,g' \
153 ${S}/tools/build/Makefile.build 154 ${S}/tools/build/Makefile.build
154 fi 155 fi
155 156