Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH] perf: Fix sysroot option to CC handling
@ 2014-04-10  9:05 Richard Purdie
  2014-04-10 13:22 ` Bruce Ashfield
  0 siblings, 1 reply; 2+ messages in thread
From: Richard Purdie @ 2014-04-10  9:05 UTC (permalink / raw)
  To: openembedded-core; +Cc: Hart, Darren

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>
---
diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb
index 9dfccdf..ef21b6c 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() {




^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-04-10 13:23 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-10  9:05 [PATCH] perf: Fix sysroot option to CC handling Richard Purdie
2014-04-10 13:22 ` Bruce Ashfield

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox