[oe] [PATCH, RFC] Cleanup / update QEMU related checks

Tom Rini tom_rini at mentor.com
Mon Mar 1 21:18:28 UTC 2010

First, we should be performing qemu-native related checks not on ARM,
but on ENABLE_BINARY_LOCALE_GENERATION (for both the ARM but no
generation and not ARM but generation) cases.  This clarifies what we do
in the first sub-check (aside: When can qemu-0.9.x die?).  This changes
the assume provided check to make sure that at least 'qemu' exists
(afaict this will exist for distribution packages as well as from-source
ones where we might not have qemu-arm, if the developer isn't doing arm)
using the standard check.  Finally (how I wrote it, not how it's in the
patch), correct (grammar and content) the comment about what GCC
versions are allowed.  My fault initially for not noticing the gcc
3.3.x / 3.2.x stuff in the list.

Signed-off-by: Tom Rini <tom_rini at mentor.com>

diff --git a/classes/base.bbclass b/classes/base.bbclass
index 990e75e..eeff262 100644
--- a/classes/base.bbclass
+++ b/classes/base.bbclass
@@ -1333,16 +1333,15 @@ def check_app_exists(app, d):
 	return len(which(path, app)) != 0
 def check_gcc3(data):
-	# Primarly used by qemu to make sure we have a workable gcc-3.4.x.
-	# Start by checking for the program name as we build it, was not
-	# all host-provided gcc-3.4's will work.
+	# Primarly used by qemu to make sure we have a workable gcc-3.x.
+	# Start by checking for the program name as we build it as there
+	# are some distribtuion provided gcc-3.x's that will not work.
 	gcc3_versions = 'gcc-3.4.6 gcc-3.4.4 gcc34 gcc-3.4 gcc-3.4.7 gcc-3.3
gcc33 gcc-3.3.6 gcc-3.2 gcc32'
 	for gcc3 in gcc3_versions.split():
 		if check_app_exists(gcc3, data):
 			return gcc3
 	return False
 # Patch handling
diff --git a/classes/sanity.bbclass b/classes/sanity.bbclass
index b66c9a9..a78e8ed 100644
--- a/classes/sanity.bbclass
+++ b/classes/sanity.bbclass
@@ -83,8 +83,10 @@ def check_sanity(e):
 	required_utilities = "patch help2man diffstat texi2html makeinfo cvs
svn bzip2 tar gzip gawk md5sum"
-	if data.getVar('TARGET_ARCH', e.data, True) == "arm":
-		# qemu-native needs gcc 3.x
+	# If we'll be running qemu, perform some sanity checks
+	if data.getVar('ENABLE_BINARY_LOCALE_GENERATION', e.data, True):
+		# Some versions of qemu-native needs gcc 3.x.  Do a special
+		# check here to allow for host 'gcc' is 3.x.
 		if "qemu-native" not in assume_provided and "gcc3-native" in
 			gcc_version = commands.getoutput("${BUILD_PREFIX}gcc --version |
head -n 1 | cut -f 3 -d ' '")
@@ -93,8 +95,7 @@ def check_sanity(e):
 				missing = missing + "gcc-3.x (needed for qemu-native),"
 		if "qemu-native" in assume_provided:
-			if not check_app_exists("qemu-arm", e.data):
-				messages = messages + "qemu-native was in ASSUME_PROVIDED but the
QEMU binaries (qemu-arm) can't be found in PATH"
+			required_utilities += "qemu"
 			if os.path.exists("/proc/sys/vm/mmap_min_addr"):

Tom Rini <tom_rini at mentor.com>
Mentor Graphics Corporation

More information about the Openembedded-devel mailing list