Patchwork [CONSOLIDATED,25,July,PULL,7/7] runqemu: report error if TMPDIR cannot be determined

login
register
mail settings
Submitter Saul Wold
Date July 25, 2011, 7:30 a.m.
Message ID <0e3c373f707202c119093e7a33c53bf51b2d31fa.1311578785.git.sgw@linux.intel.com>
Download mbox | patch
Permalink /patch/8413/
State New, archived
Headers show

Comments

Saul Wold - July 25, 2011, 7:30 a.m.
From: Scott Garman <scott.a.garman@intel.com>

Invoking runqemu outside of the build directory for an
in-tree setup results in an empty TMPDIR because bitbake -e
cannot be run to find it.

A symptom of this problem is running runqemu and getting the
following error:

Error: Unable to find tunctl binary in <directory>

Catch this case and report the error to the user.

This fixes [YOCTO #1278]

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
---
 scripts/runqemu |   27 ++++++++++++++++-----------
 1 files changed, 16 insertions(+), 11 deletions(-)

Patch

diff --git a/scripts/runqemu b/scripts/runqemu
index 5aed25a..dacaf7c 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -272,22 +272,27 @@  setup_tmpdir() {
 
         # We have bitbake in PATH, get TMPDIR from bitbake
         TMPDIR=`bitbake -e | grep TMPDIR=\" | cut -d '=' -f2 | cut -d '"' -f2`
+        if [ -z "$TMPDIR" ]; then
+            echo "Error: this script needs to be run from your build directory,"
+            echo "or you need to explicitly set TMPDIR in your environment"
+            exit 1
+        fi
     fi
 }
 
 setup_sysroot() {
-	# Toolchain installs set up $OECORE_NATIVE_SYSROOT in their
-	# environment script. If that variable isn't set, we're
-	# either in an in-tree build scenario or the environment
-	# script wasn't source'd.
-	if [ -z "$OECORE_NATIVE_SYSROOT" ]; then
-		setup_tmpdir
-		BUILD_ARCH=`uname -m`
-		BUILD_OS=`uname | tr '[A-Z]' '[a-z]'`
-		BUILD_SYS="$BUILD_ARCH-$BUILD_OS"
-
-		OECORE_NATIVE_SYSROOT=$TMPDIR/sysroots/$BUILD_SYS
-	fi 
+    # Toolchain installs set up $OECORE_NATIVE_SYSROOT in their
+    # environment script. If that variable isn't set, we're
+    # either in an in-tree build scenario or the environment
+    # script wasn't source'd.
+    if [ -z "$OECORE_NATIVE_SYSROOT" ]; then
+        setup_tmpdir
+        BUILD_ARCH=`uname -m`
+        BUILD_OS=`uname | tr '[A-Z]' '[a-z]'`
+        BUILD_SYS="$BUILD_ARCH-$BUILD_OS"
+
+        OECORE_NATIVE_SYSROOT=$TMPDIR/sysroots/$BUILD_SYS
+    fi 
 }
 
 # Locate a rootfs image based on defaults defined above