summaryrefslogtreecommitdiff
path: root/meta/recipes-kernel
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2014-04-10 10:05:50 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-04-10 10:22:26 +0100
commitd9bd1ac6d91de932dd3e2fcac9da77e0a7c09f55 (patch)
tree8c34ff51d0eabfce07ab7109b9650e5078474def /meta/recipes-kernel
parentc2892fa27d9918aa4ce00a106a254ddfd44aa0f1 (diff)
downloadopenembedded-core-d9bd1ac6d91de932dd3e2fcac9da77e0a7c09f55.tar.gz
openembedded-core-d9bd1ac6d91de932dd3e2fcac9da77e0a7c09f55.tar.bz2
openembedded-core-d9bd1ac6d91de932dd3e2fcac9da77e0a7c09f55.zip
perf: Fix sysroot option to CC handling
If you build perf in tree /xxx/treea, then cleansstate perf and build it in /xxx/treeb having deleted treea, the build will fail, unable to find libc. The problem is that the --sysroot option passed in through CC is missing. This works fine if the default sysroot is ok, if it isn't, things will fail. In 1.7 we'll start poisoning the default sysroot in gcc to catch this kind of issue however that doesn't fix the problem with perf. The problem is that various Makefiles set CC = $(CROSS_COMPILE)gcc. The easist fix for now is to sed out the problematic Makefile lines. Its worth noting the tools/lib/traceevent Makefile has a much more funky way of setting CC which works for us and may be the way we need to fix the other Makefiles upstream. This fixes build failures we're occasionally seen on the autobuilders. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-kernel')
-rw-r--r--meta/recipes-kernel/perf/perf.bb12
1 files changed, 12 insertions, 0 deletions
diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb
index 9dfccdfd60..ef21b6c9c2 100644
--- a/meta/recipes-kernel/perf/perf.bb
+++ b/meta/recipes-kernel/perf/perf.bb
@@ -133,6 +133,18 @@ do_configure_prepend () {
if [ -e "${S}/tools/perf/config/Makefile" ]; then
sed -i 's,libdir = $(prefix)/$(lib),libdir = $(prefix)/${baselib},' ${S}/tools/perf/config/Makefile
fi
+ # We need to ensure the --sysroot option in CC is preserved
+ if [ -e "${S}/tools/perf/Makefile.perf" ]; then
+ sed -i 's,CC = $(CROSS_COMPILE)gcc,#CC,' ${S}/tools/perf/Makefile.perf
+ sed -i 's,AR = $(CROSS_COMPILE)ar,#AR,' ${S}/tools/perf/Makefile.perf
+ fi
+ if [ -e "${S}/tools/lib/api/Makefile" ]; then
+ sed -i 's,CC = $(CROSS_COMPILE)gcc,#CC,' ${S}/tools/lib/api/Makefile
+ sed -i 's,AR = $(CROSS_COMPILE)ar,#AR,' ${S}/tools/lib/api/Makefile
+ fi
+ if [ -e "${S}/tools/perf/config/feature-checks/Makefile" ]; then
+ sed -i 's,CC := $(CROSS_COMPILE)gcc -MD,CC += -MD,' ${S}/tools/perf/config/feature-checks/Makefile
+ fi
}
python do_package_prepend() {