[oe-commits] org.oe.dev merge of '32c3532162bccf620b7b8cff0f98f92a1f519b3a'

mickeyl commit openembedded-commits at lists.openembedded.org
Thu Feb 21 14:41:44 UTC 2008


merge of '32c3532162bccf620b7b8cff0f98f92a1f519b3a'
     and '572f8a9e138fdfcf2db206180ca705b00b696a64'

Author: mickeyl at openembedded.org
Branch: org.openembedded.dev
Revision: 4bec655b605d8fc1eea8743bc9be4757e76d3378
ViewMTN: http://monotone.openembedded.org/revision/info/4bec655b605d8fc1eea8743bc9be4757e76d3378
Files:
1
classes/sanity.bbclass
conf/bitbake.conf
Diffs:

#
# mt diff -r32c3532162bccf620b7b8cff0f98f92a1f519b3a -r4bec655b605d8fc1eea8743bc9be4757e76d3378
#
# 
# 
# patch "classes/sanity.bbclass"
#  from [ebf6cc13d544c4d677c13e3ea8dd18655c21e172]
#    to [476edb8104e59b309dc8324d39e691ffd1116e3a]
# 
# patch "conf/bitbake.conf"
#  from [040778b31ab6668f50df7d840d46fd1abbc7c6cf]
#    to [a605bd5d4d48054b72d21c74a922a9a0a2d12a76]
# 
============================================================
--- classes/sanity.bbclass	ebf6cc13d544c4d677c13e3ea8dd18655c21e172
+++ classes/sanity.bbclass	476edb8104e59b309dc8324d39e691ffd1116e3a
@@ -1,7 +1,16 @@
 #
 # Sanity check the users setup for common misconfigurations
 #
 
+#
+# SANITY_ABI allows us to notify users when the format of TMPDIR changes in 
+# an incompatible way. Such changes should usually be detailed in the commit
+# that breaks the format and have been previously discussed on the mailing list 
+# with general agreement from the core team.
+#
+SANITY_ABI = "0"
+SANITY_ABIFILE = "${TMPDIR}/abi_version"
+
 def raise_sanity_error(msg):
 	import bb
 	bb.fatal(""" Openembedded's config sanity checker detected a potential misconfiguration.
@@ -31,7 +40,7 @@ def check_sanity(e):
 		from distutils.version import LooseVersion
 	except ImportError:
 		def LooseVersion(v): print "WARNING: sanity.bbclass can't compare versions without python-distutils"; return 1
-	import os
+	import os, commands
 
 	# Check the bitbake version meets minimum requirements
 	minversion = data.getVar('BB_MIN_VERSION', e.data , True)
@@ -64,8 +73,8 @@ def check_sanity(e):
 	
 	# Check that the MACHINE is valid, if it is set
 	if data.getVar('MACHINE', e.data, True):
-	    if not check_conf_exists("conf/machine/${MACHINE}.conf", e.data):
-		messages = messages + 'Please set a valid MACHINE in your local.conf\n'
+		if not check_conf_exists("conf/machine/${MACHINE}.conf", e.data):
+			messages = messages + 'Please set a valid MACHINE in your local.conf\n'
 	
 	# Check that the DISTRO is valid
 	# need to take into account DISTRO renaming DISTRO
@@ -85,6 +94,19 @@ 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 "qemu-native" not in assume_provided and "gcc3-native" in assume_provided:
+			gcc_version = commands.getoutput("${BUILD_PREFIX}gcc --version | head -n 1 | cut -f 3 -d ' '")
+
+			if not check_gcc3(e.data) and gcc_version[0] != '3':
+				messages = messages + "gcc3-native was in ASSUME_PROVIDED but the gcc-3.x binary can't be found in PATH"
+				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"
+
 	for util in required_utilities.split():
 		if not check_app_exists( util, e.data ):
 			missing = missing + "%s," % util
@@ -100,8 +122,38 @@ def check_sanity(e):
 
 	oes_bb_conf = data.getVar( 'OES_BITBAKE_CONF', e.data, True )
 	if not oes_bb_conf:
-		messages = messages + 'You do not include OpenEmbeddeds version of conf/bitbake.conf\n'
+		messages = messages + 'You do not include OpenEmbeddeds version of conf/bitbake.conf. This means your environment is misconfigured, in particular check BBPATH.\n'
 
+	#
+	# Check that TMPDIR hasn't changed location since the last time we were run
+	#
+	tmpdir = data.getVar('TMPDIR', e.data, True)
+	checkfile = os.path.join(tmpdir, "saved_tmpdir")
+	if os.path.exists(checkfile):
+		f = file(checkfile, "r")
+		if (f.read().strip() != tmpdir):
+			messages = messages + "Error, TMPDIR has changed location. You need to either move it back to %s or rebuild\n" % tmpdir
+	else:
+		f = file(checkfile, "w")
+		f.write(tmpdir)
+	f.close()
+
+	#
+	# Check the 'ABI' of TMPDIR
+	#
+	current_abi = data.getVar('SANITY_ABI', e.data, True)
+	abifile = data.getVar('SANITY_ABIFILE', e.data, True)
+	if os.path.exists(abifile):
+		f = file(abifile, "r")
+		abi = f.read().strip()
+		if (abi != current_abi):
+			# Code to convert from one ABI to another could go here if possible.
+			messages = messages + "Error, TMPDIR has changed ABI (%s to %s) and you need to either rebuild, revert or adjust it at your own risk.\n" % (abi, current_abi)
+	else:
+		f = file(abifile, "w")
+		f.write(current_abi)
+	f.close()
+
 	if messages != "":
 		raise_sanity_error(messages)
 
@@ -115,12 +167,7 @@ python check_sanity_eventhandler() {
     except ImportError:
         def LooseVersion(v): print "WARNING: sanity.bbclass can't compare versions without python-distutils"; return 1
 
-    if (LooseVersion(bb.__version__) > LooseVersion("1.8.6")):
-        if getName(e) == "ConfigParsed":
-            check_sanity(e)
-        return NotHandled
-
-    if getName(e) == "BuildStarted":
+    if getName(e) == "ConfigParsed":
         check_sanity(e)
 
     return NotHandled
============================================================
--- conf/bitbake.conf	040778b31ab6668f50df7d840d46fd1abbc7c6cf
+++ conf/bitbake.conf	a605bd5d4d48054b72d21c74a922a9a0a2d12a76
@@ -216,18 +216,18 @@ STAGING_DIR_NATIVE = "${STAGING_DIR}/${B
 STAGING_DIR = "${TMPDIR}/staging"
 
 STAGING_DIR_NATIVE = "${STAGING_DIR}/${BUILD_SYS}"
-STAGING_BINDIR_NATIVE = "${STAGING_DIR_NATIVE}/bin"
-STAGING_BINDIR_CROSS = "${STAGING_DIR_NATIVE}/bin/${HOST_SYS}"
-STAGING_LIBDIR_NATIVE = "${STAGING_DIR_NATIVE}/lib"
-STAGING_INCDIR_NATIVE = "${STAGING_DIR_NATIVE}/include"
-STAGING_ETCDIR_NATIVE = "${STAGING_DIR_NATIVE}/etc"
-STAGING_DATADIR_NATIVE = "${STAGING_DIR_NATIVE}/share"
+STAGING_BINDIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_bindir}"
+STAGING_BINDIR_CROSS  = "${STAGING_DIR_NATIVE}${layout_bindir}/${HOST_SYS}"
+STAGING_LIBDIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_libdir}"
+STAGING_INCDIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_includedir}"
+STAGING_ETCDIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_sysconfdir}"
+STAGING_DATADIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_datadir}"
 
 STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_SYS}"
-STAGING_BINDIR = "${STAGING_DIR_HOST}/bin"
-STAGING_LIBDIR = "${STAGING_DIR_HOST}/lib"
-STAGING_INCDIR = "${STAGING_DIR_HOST}/include"
-STAGING_DATADIR = "${STAGING_DIR_HOST}/share"
+STAGING_BINDIR = "${STAGING_DIR_HOST}${layout_bindir}"
+STAGING_LIBDIR = "${STAGING_DIR_HOST}${layout_libdir}"
+STAGING_INCDIR = "${STAGING_DIR_HOST}${layout_includedir}"
+STAGING_DATADIR = "${STAGING_DIR_HOST}${layout_datadir}"
 STAGING_LOADER_DIR = "${STAGING_DIR_HOST}/loader"
 STAGING_FIRMWARE_DIR = "${STAGING_DIR_HOST}/firmware"
 STAGING_PYDIR = "${STAGING_DIR}/lib/python2.4"
@@ -310,7 +310,7 @@ export PATH_prepend = "${STAGING_BINDIR_
 # Build utility info.
 ##################################################################
 
-CCACHE = "${@bb.which(bb.data.getVar('PATH', d), 'ccache') and 'ccache '}"
+CCACHE = "${@bb.which(bb.data.getVar('PATH', d, 1), 'ccache') and 'ccache '}"
 TOOLCHAIN_OPTIONS = ""
 
 export CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
@@ -351,10 +351,12 @@ export BUILD_CPPFLAGS = "-isystem${STAGI
 ##################################################################
 
 export BUILD_CPPFLAGS = "-isystem${STAGING_INCDIR_NATIVE}"
+BUILDSDK_CPPFLAGS = "-isystem${STAGING_INCDIR}"
 export CPPFLAGS = "${TARGET_CPPFLAGS}"
-export TARGET_CPPFLAGS = "-isystem${STAGING_DIR_TARGET}/include"
+export TARGET_CPPFLAGS = "-isystem${STAGING_DIR_TARGET}${layout_includedir}"
 
 export BUILD_CFLAGS = "${BUILD_CPPFLAGS} ${BUILD_OPTIMIZATION}"
+BUILDSDK_CFLAGS = "${BUILDSDK_CPPFLAGS} ${BUILD_OPTIMIZATION}"
 export CFLAGS = "${TARGET_CFLAGS}"
 export TARGET_CFLAGS = "${TARGET_CPPFLAGS} ${SELECTED_OPTIMIZATION}"
 
@@ -365,9 +367,14 @@ export BUILD_LDFLAGS = "-L${STAGING_LIBD
 export BUILD_LDFLAGS = "-L${STAGING_LIBDIR_NATIVE} \
                         -Wl,-rpath-link,${STAGING_LIBDIR_NATIVE} \
                         -Wl,-rpath,${STAGING_LIBDIR_NATIVE} -Wl,-O1"
+
+BUILDSDK_LDFLAGS = "-L${STAGING_LIBDIR} \
+                    -Wl,-rpath-link,${STAGING_LIBDIR} \
+                    -Wl,-rpath,${libdir} -Wl,-O1"
+
 export LDFLAGS = "${TARGET_LDFLAGS}"
-export TARGET_LDFLAGS = "-L${STAGING_DIR_TARGET}/lib \
-                         -Wl,-rpath-link,${STAGING_DIR_TARGET}/lib \
+export TARGET_LDFLAGS = "-L${STAGING_DIR_TARGET}${layout_libdir} \
+                         -Wl,-rpath-link,${STAGING_DIR_TARGET}${layout_libdir} \
                          -Wl,-O1"
 
 # Which flags to leave by strip-flags() in bin/build/oebuild.sh ?


#
# mt diff -r572f8a9e138fdfcf2db206180ca705b00b696a64 -r4bec655b605d8fc1eea8743bc9be4757e76d3378
#
# 
# no changes
# 






More information about the Openembedded-commits mailing list