runqemu-extract-sdk: Fixes for RSS
cover runqemu-extract-sdk: Fixes for RSS
RSS removed the "giant native sysroot" so now we need a modify how tools like runqemu and runqemu-extract-sdk find the native tools they need to run. This patch uses the result of meta-ide-support which has pseudo as well as tools like unfsd in it's usr/bin to run. Since the meta-ide-support make a usr/bin dir in tmp/work and rm_work sibsequently removes it, we exlude meta-ide-support from the rm_work set.
-brian
The following changes since commit eff56e4f0d59b1d965a68e4f009b7f07717b7edd:
bitbake: bitbake-user-manual: Fixed special character in -D output (2017-04-03 22:32:02 +0100)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib bavery/sadpseudo/bug11119
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=bavery/sadpseudo/bug11119
brian avery (2):
scripts: change way we find native tools (pseudo)
meta-ide-support: exclude this recipe from rm_work
meta/recipes-core/meta/meta-ide-support.bb | 1 + scripts/oe-find-native-sysroot | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-)
--
1.9.1
PATCH 1/2 scripts: change way we find native tools (pseudo)
oe-find-native-sysroot: Recipe Specific Sysroots have eliminated the large STAGING_DIR_NATIVE. Now, we will rely on the meta-ide-support sysroot that is what was populating the large STAGING_DIR_NATIVE in previous versions anyway. We now look for RECIPE_SYSROOT_NATIVE.
[YOCTO #11119]
--- scripts/oe-find-native-sysroot | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
scripts/oe-find-native-sysroot +4 -4
@@ -2,7 +2,7 @@ # # Find a native sysroot to use - either from an in-tree OE build or # from a toolchain installation. It then ensures the variable -# $OECORE_NATIVE_SYSROOT is set to the sysroot's base directory, and sets +# $OECORE_NATIVE_SYSROOT is set to the sysroot's base directory, and sets # $PSEUDO to the path of the pseudo binary. # # This script is intended to be run within other scripts by source'ing
@@ -54,10 +54,10 @@ if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then exit 1 fi touch conf/sanity.conf - OECORE_NATIVE_SYSROOT=`bitbake -e | grep ^STAGING_DIR_NATIVE | cut -d '"' -f2` + OECORE_NATIVE_SYSROOT=`bitbake -e meta-ide-support | grep ^RECIPE_SYSROOT_NATIVE | cut -d '"' -f2` rm -f conf/sanity.conf else - OECORE_NATIVE_SYSROOT=`bitbake -e | grep ^STAGING_DIR_NATIVE | cut -d '"' -f2` + OECORE_NATIVE_SYSROOT=`bitbake -e meta-ide-support | grep ^RECIPE_SYSROOT_NATIVE | cut -d '"' -f2` fi else echo "Error: Unable to locate bitbake command."
@@ -72,7 +72,7 @@ fi if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then # This indicates that there was an error running bitbake -e that # the user needs to be informed of - echo "There was an error running bitbake to determine STAGING_DIR_NATIVE" + echo "There was an error running bitbake to determine RECIPE_SYSROOT_NATIVE" echo "Here is the output from bitbake -e" bitbake -e exit 1
Signature · 1 line
1.9.1
Re: [PATCH 1/2] scripts: change way we find native tools (pseudo)
Quoted 4 lines · On Tue, 4 Apr 2017 15:22:10 -0700 brian avery <[email protected]> wrote:
oe-find-native-sysroot: Recipe Specific Sysroots have eliminated the large
STAGING_DIR_NATIVE. Now, we will rely on the meta-ide-support sysroot that is what was populating the largeSTAGING_DIR_NATIVEin previous versions anyway. We now look forRECIPE_SYSROOT_NATIVE.
So far as I can tell, pseudo internals won't be affected, and this sounds reasonable to me.
-s
Re: [PATCH 1/2] scripts: change way we find native tools (pseudo)
In reply to brian averyHi Brian and RP,
This patch can't fix the problem of scripts/oe-run-native, it only can run the native tools which is depended by meta-ide-support, for example:
$ bitbake bmap-tools-native meta-ide-support $ oe-run-native bmaptool --help # exmaple from dev-manual-start.xml
Error: Unable to find 'bmaptool' in native sysroot
I think that we need consider the patch that I had sent before:
git://git.openembedded.org/openembedded-core-contrib rbt/rssfix
http://cgit.openembedded.org/openembedded-core-contrib/log/?h=rbt/rssfix
Robert Yang (1):
oe-find-native-sysroot: work with RSS
Subject: [PATCH 1/1] oe-find-native-sysroot: work with RSS
The generic STAGING_DIR_NATIVE is gone since RSS, so when find OECORE_NATIVE_SYSROOT, the user has to specify which recipe's STAGING_DIR_NATIVE will be used as OECORE_NATIVE_SYSROOT.
* The usage is changed from ". oe-find-native-sysroot" to ". oe-find-native-sysroot <recipe>".
* The oe-run-native's usage has changed from "oe-run-native tool" to "oe-run-native native-recipe tool".
--- scripts/oe-find-native-sysroot | 56 ++++++++++++++++++++++++++++-------------- scripts/oe-run-native | 15 +++++++---- scripts/runqemu-export-rootfs | 2 +- scripts/runqemu-extract-sdk | 2 +- 4 files changed, 49 insertions(+), 26 deletions(-)
scripts/oe-find-native-sysroot +28 -18
@@ -9,7 +9,7 @@ # it, e.g: # # SYSROOT_SETUP_SCRIPT=`which oe-find-native-sysroot` -# . $SYSROOT_SETUP_SCRIPT +# . $SYSROOT_SETUP_SCRIPT <recipe> # # This script will terminate execution of your calling program unless # you set a variable $SKIP_STRICT_SYSROOT_CHECK to a non-empty string
@@ -30,8 +30,8 @@ # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -if [ "$1" = '--help' -o "$1" = '-h' ] ; then - echo 'Usage: oe-find-native-sysroot [-h|--help]' +if [ "$1" = '--help' -o "$1" = '-h' -o $# -ne 1 ] ; then + echo 'Usage: oe-find-native-sysroot <recipe> [-h|--help]' echo '' echo 'OpenEmbedded find-native-sysroot - helper script to set' echo 'environment variables OECORE_NATIVE_SYSROOT and PSEUDO'
@@ -39,11 +39,31 @@ if [ "$1" = '--help' -o "$1" = '-h' ] ; then echo 'executable binary' echo '' echo 'options:' + echo ' recipe its STAGING_DIR_NATIVE is used as native sysroot' echo ' -h, --help show this help message and exit' echo '' exit 2 fi +# Global vars +BITBAKE_E="" +OECORE_NATIVE_SYSROOT="" + +set_oe_native_sysroot(){ + echo "Running bitbake -e $1" + BITBAKE_E="`bitbake -e $1`" + OECORE_NATIVE_SYSROOT=`echo "$BITBAKE_E" | grep ^STAGING_DIR_NATIVE | cut -d '"' -f2` + + if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then + # This indicates that there was an error running bitbake -e that + # the user needs to be informed of + echo "There was an error running bitbake to determine STAGING_DIR_NATIVE" + echo "Here is the output from bitbake -e $1" + echo "$BITBAKE_E" + exit 1 + fi +} + if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then BITBAKE=`which bitbake 2> /dev/null` if [ "x$BITBAKE" != "x" ]; then
@@ -54,10 +74,10 @@ if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then exit 1 fi touch conf/sanity.conf - OECORE_NATIVE_SYSROOT=`bitbake -e meta-ide-support | grep ^RECIPE_SYSROOT_NATIVE | cut -d '"' -f2` + set_oe_native_sysroot $1 rm -f conf/sanity.conf else - OECORE_NATIVE_SYSROOT=`bitbake -e meta-ide-support | grep ^RECIPE_SYSROOT_NATIVE | cut -d '"' -f2` + set_oe_native_sysroot $1 fi else echo "Error: Unable to locate bitbake command."
@@ -69,21 +89,11 @@ if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then fi fi -if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then - # This indicates that there was an error running bitbake -e that - # the user needs to be informed of - echo "There was an error running bitbake to determine RECIPE_SYSROOT_NATIVE" - echo "Here is the output from bitbake -e" - bitbake -e - exit 1 -fi - -# Set up pseudo command -if [ ! -e "$OECORE_NATIVE_SYSROOT/usr/bin/pseudo" ]; then - echo "Error: Unable to find pseudo binary in $OECORE_NATIVE_SYSROOT/usr/bin/" +if [ ! -e "$OECORE_NATIVE_SYSROOT/" ]; then + echo "Error: $OECORE_NATIVE_SYSROOT doesn't exist." if [ "x$OECORE_DISTRO_VERSION" = "x" ]; then - echo "Have you run 'bitbake meta-ide-support'?" + echo "Have you run 'bitbake $1 -caddto_recipe_sysroot'?" else echo "This shouldn't happen - something is wrong with your toolchain
installation"
fi
@@ -92,4 +102,12 @@ if [ ! -e "$OECORE_NATIVE_SYSROOT/usr/bin/pseudo" ]; then
exit 1
fi
fi
-PSEUDO="$OECORE_NATIVE_SYSROOT/usr/bin/pseudo"
+
+# Set up pseudo command +pseudo="$OECORE_NATIVE_SYSROOT/usr/bin/pseudo"
+if [ -e "$pseudo" ]; then
+ echo "PSEUDO=$pseudo"
+ PSEUDO="$pseudo"
+else
+ echo "PSEUDO $pseudo is not found."
+fi
scripts/oe-run-native +8 -3
@@ -22,34 +22,39 @@ # if [ $# -lt 1 -o "$1" = '--help' -o "$1" = '-h' ] ; then - echo 'oe-run-native: error: the following arguments are required: <native tool>' - echo 'Usage: oe-run-native tool [parameters]' + echo 'oe-run-native: error: the following arguments are required: <native recipe> <native tool>' + echo 'Usage: oe-run-native native-recipe tool [parameters]' echo '' echo 'OpenEmbedded run-native - runs native tools' echo '' echo 'arguments:' + echo ' native-recipe The recipe which provoides tool' echo ' tool Native tool to run' echo '' exit 2 fi +native_recipe="$1" +tool="$2" +shift + SYSROOT_SETUP_SCRIPT=`which oe-find-native-sysroot 2> /dev/null` if [ -z "$SYSROOT_SETUP_SCRIPT" ]; then echo "Error: Unable to find oe-find-native-sysroot script" exit 1 fi -. $SYSROOT_SETUP_SCRIPT +. $SYSROOT_SETUP_SCRIPT $native_recipe OLD_PATH=$PATH # look for a tool only in native sysroot
PATH=$OECORE_NATIVE_SYSROOT/usr/bin:$OECORE_NATIVE_SYSROOT/bin:$OECORE_NATIVE_SYSROOT/usr/sbin:$OECORE_NATIVE_SYSROOT/sbin -tool=/usr/bin/which $1 2>/dev/null
+tool=/usr/bin/which $tool 2>/dev/null
if [ -n "$tool" ] ; then
# add old path to allow usage of host tools
PATH=$PATH:$OLD_PATH $@
else
- echo "Error: Unable to find '$1' in native sysroot"
+ echo "Error: Unable to find '$tool' in $PATH"
exit 1
fiscripts/runqemu-export-rootfs +1 -1
@@ -44,7 +44,7 @@ if [ -z "$SYSROOT_SETUP_SCRIPT" ]; then echo "Did you forget to source your build environment setup script?" exit 1 fi -. $SYSROOT_SETUP_SCRIPT +. $SYSROOT_SETUP_SCRIPT meta-ide-support if [ ! -e "$OECORE_NATIVE_SYSROOT/usr/bin/unfsd" ]; then echo "Error: Unable to find unfsd binary in $OECORE_NATIVE_SYSROOT/usr/bin/"
scripts/runqemu-extract-sdk +1 -1
@@ -35,7 +35,7 @@ if [ -z "$SYSROOT_SETUP_SCRIPT" ]; then echo "Did you forget to source your build system environment setup script?" exit 1 fi -. $SYSROOT_SETUP_SCRIPT +. $SYSROOT_SETUP_SCRIPT meta-ide-support PSEUDO_OPTS="-P $OECORE_NATIVE_SYSROOT/usr" ROOTFS_TARBALL=$1
// Robert
Quoted 48 lines · brian avery
oe-find-native-sysroot: Recipe Specific Sysroots have eliminated the large
STAGING_DIR_NATIVE. Now, we will rely on the meta-ide-support sysroot that is what was populating the largeSTAGING_DIR_NATIVEin previous versions anyway. We now look forRECIPE_SYSROOT_NATIVE.[YOCTO #11119]
Signed-off-by brian avery <[email protected]>--- scripts/oe-find-native-sysroot | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)scripts/oe-find-native-sysroot +4
-4@@ -2,7 +2,7 @@ # # Find a native sysroot to use - either from an in-tree OE build or # from a toolchain installation. It then ensures the variable -# $OECORE_NATIVE_SYSROOT is set to the sysroot's base directory, and sets +# $OECORE_NATIVE_SYSROOT is set to the sysroot's base directory, and sets # $PSEUDO to the path of the pseudo binary. # # This script is intended to be run within other scripts by source'ing@@ -54,10 +54,10 @@ if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then exit 1 fi touch conf/sanity.conf - OECORE_NATIVE_SYSROOT=`bitbake -e | grep ^STAGING_DIR_NATIVE | cut -d '"' -f2` + OECORE_NATIVE_SYSROOT=`bitbake -e meta-ide-support | grep ^RECIPE_SYSROOT_NATIVE | cut -d '"' -f2` rm -f conf/sanity.conf else - OECORE_NATIVE_SYSROOT=`bitbake -e | grep ^STAGING_DIR_NATIVE | cut -d '"' -f2` + OECORE_NATIVE_SYSROOT=`bitbake -e meta-ide-support | grep ^RECIPE_SYSROOT_NATIVE | cut -d '"' -f2` fi else echo "Error: Unable to locate bitbake command."@@ -72,7 +72,7 @@ fi if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then # This indicates that there was an error running bitbake -e that # the user needs to be informed of - echo "There was an error running bitbake to determine STAGING_DIR_NATIVE" + echo "There was an error running bitbake to determine RECIPE_SYSROOT_NATIVE" echo "Here is the output from bitbake -e" bitbake -e exit 1
Re: [PATCH 1/2] scripts: change way we find native tools (pseudo)
Hi Robert,
I was definitely looking at only the extract-rootfs issue and didn't remember seeing your above patch. I agree that we need a broader solution than the one I did. I tried applying yours but had some issues. Your patch did fix the runqemu-extract-rootfs, but not when I had INHERIT+= " rm_work ". Also, I had trouble running the oe-run-native script. It seems like the help is reversed from what order it is expecting? I may be missing something, it's getting late; but I'll look at it tomoro and see if I can't expand on your patch for a more generic solution. Issues from the run below. ty,
b
an intel employee
$ bitbake bmap-tools-native -caddto_recipe_sysroot
$ oe-run-native bmap-tools-native bmaptool
Running bitbake -e bmaptool
ERROR: Nothing PROVIDES 'bmaptool'. Close matches:
bmap-tools
mtools
There was an error running bitbake to determine STAGING_DIR_NATIVE
Here is the output from bitbake -e bmaptool
WARNING: Host distribution "ubuntu-14.04" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution. Loading cache...done. Loaded 1299 entries from dependency cache. Summary: There was 1 WARNING message shown. Summary: There was 1 ERROR message shown, returning a non-zero exit code.
$ oe-run-native bmaptool bmap-tools-native
Running bitbake -e bmap-tools-native
PSEUDO …/tmp/work/x86_64-linux/bmap-tools-native/3.2-r0/recipe-sysroot-native/usr/bin/pseudo is not found.
Error: Unable to find '' in .../tmp/work/x86_64-linux/bmap-tools-native/3.2-r0/recipe-sysroot-native/usr/bin:.../tmp/work/x86_64-linux/bmap-tools-native/3.2-r0/recipe-sysroot-native/bin:.../tmp/work/x86_64-linux/bmap-tools-native/3.2-r0/recipe-sysroot-native/usr/sbin:.../tmp/work/x86_64-linux/bmap-tools-native/3.2-r0/recipe-sysroot-native/sbin
bavery@bavery-WS-DESK:...$ oe-run-native
oe-run-native: error: the following arguments are required: <native recipe> <native tool>
Usage: oe-run-native native-recipe tool [parameters]
OpenEmbedded run-native - runs native tools
arguments:
native-recipe The recipe which provoides tool
tool Native tool to run
Quoted 307 lines · Robert Yang
Hi Brian and RP,
This patch can't fix the problem of
scripts/oe-run-native, it only can run the native tools which is depended by meta-ide-support, for example:$ bitbake bmap-tools-native meta-ide-support $ oe-run-native bmaptool --help # exmaple from dev-manual-start.xmlError: Unable to find 'bmaptool' in native sysroot
I think that we need consider the patch that I had sent before:
git://git.openembedded.org/openembedded-core-contribrbt/rssfix
http://cgit.openembedded.org/openembedded-core-contrib/log/?h=rbt/rssfixRobert Yang (1):
oe-find-native-sysroot: work with RSSSubject: [PATCH 1/1] oe-find-native-sysroot: work with RSS
The generic
STAGING_DIR_NATIVEis gone since RSS, so when findOECORE_NATIVE_SYSROOT, the user has to specify which recipe'sSTAGING_DIR_NATIVEwill be used asOECORE_NATIVE_SYSROOT.* The usage is changed from ". oe-find-native-sysroot" to ". oe-find-native-sysroot <recipe>".
* The oe-run-native's usage has changed from "oe-run-native tool" to "oe-run-native native-recipe tool".Signed-off-by Robert Yang <[email protected]>--- scripts/oe-find-native-sysroot | 56 ++++++++++++++++++++++++++++-- ------------ scripts/oe-run-native | 15 +++++++---- scripts/runqemu-export-rootfs | 2 +- scripts/runqemu-extract-sdk | 2 +- 4 files changed, 49 insertions(+), 26 deletions(-)scripts/oe-find-native-sysro renamed from scripts/oe-find-native-sysroot +0
-0ot
index3f4c29da8a..59fe3f3118100755scripts/oe-find-native-sysroot +4
-3@@ -9,7 +9,7 @@ # it, e.g: # # SYSROOT_SETUP_SCRIPT=`which oe-find-native-sysroot` -# . $SYSROOT_SETUP_SCRIPT +# . $SYSROOT_SETUP_SCRIPT <recipe> # # This script will terminate execution of your calling program unless # you set a variable $SKIP_STRICT_SYSROOT_CHECK to a non-empty string@@ -30,8 +30,8 @@ # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -if [ "$1" = '--help' -o "$1" = '-h' ] ; then - echo 'Usage: oe-find-native-sysroot [-h|--help]' +if [ "$1" = '--help' -o "$1" = '-h' -o $# -ne 1 ] ; then + echo 'Usage: oe-find-native-sysroot <recipe> [-h|--help]' echo '' echo 'OpenEmbedded find-native-sysroot - helper script to set' echo 'environment variables OECORE_NATIVE_SYSROOT and PSEUDO'@@ -39,11 +39,31 @@ if [ "$1" = '--help' -o "$1" = '-h' ] ; then echo 'executable binary' echo '' echo 'options:' + echo ' recipe its STAGING_DIR_NATIVE is used as nativesysroot'
echo ' -h, --help show this help message and exit'
echo ''
exit 2
fiscripts/oe-find-native-sysroot +8
-0+# Global vars +BITBAKE_E="" +OECORE_NATIVE_SYSROOT="" + +set_oe_native_sysroot(){ + echo "Running bitbake -e $1" + BITBAKE_E="`bitbake -e $1`" + OECORE_NATIVE_SYSROOT=`echo "$BITBAKE_E" | grep ^STAGING_DIR_NATIVE |cut -d '"' -f2`
scripts/oe-find-native-sysroot +5
-0+ + if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then + # This indicates that there was an error running bitbake -e that + # the user needs to be informed of + echo "There was an error running bitbake to determine
STAGING_DIR_NATIVE"scripts/oe-find-native-sysroot +6
-1+ echo "Here is the output from bitbake -e $1" + echo "$BITBAKE_E" + exit 1 + fi +} + if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then BITBAKE=`which bitbake 2> /dev/null` if [ "x$BITBAKE" != "x" ]; then@@ -54,10 +74,10 @@ if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then exit 1 fi touch conf/sanity.conf - OECORE_NATIVE_SYSROOT=`bitbake -e meta-ide-support | grep^RECIPE_SYSROOT_NATIVE | cut -d '"' -f2`
scripts/oe-find-native-sysroot +1
-1+ set_oe_native_sysroot $1 rm -f conf/sanity.conf else - OECORE_NATIVE_SYSROOT=`bitbake -e meta-ide-support | grep^RECIPE_SYSROOT_NATIVE | cut -d '"' -f2`
scripts/oe-find-native-sysroot +1
-4+ set_oe_native_sysroot $1 fi else echo "Error: Unable to locate bitbake command."@@ -69,21 +89,11 @@ if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then fi fi -if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then - # This indicates that there was an error running bitbake -e that - # the user needs to be informed of - echo "There was an error running bitbake to determine
RECIPE_SYSROOT_NATIVE"scripts/oe-find-native-sysroot +0
-8- echo "Here is the output from bitbake -e" - bitbake -e - exit 1 -fi - -# Set up pseudo command -if [ ! -e "$OECORE_NATIVE_SYSROOT/usr/bin/pseudo" ]; then - echo "Error: Unable to find pseudo binary in$OECORE_NATIVE_SYSROOT/usr/bin/"
scripts/oe-find-native-sysroot +3
-1+if [ ! -e "$OECORE_NATIVE_SYSROOT/" ]; then + echo "Error: $OECORE_NATIVE_SYSROOT doesn't exist." if [ "x$OECORE_DISTRO_VERSION" = "x" ]; then - echo "Have you run 'bitbake meta-ide-support'?" + echo "Have you run 'bitbake $1 -caddto_recipe_sysroot'?" else echo "This shouldn't happen - something is wrong with yourtoolchain installation"
fiscripts/oe-find-native-sysroot +0
-0@@ -92,4 +102,12 @@ if [ ! -e "$OECORE_NATIVE_SYSROOT/usr/bin/pseudo" ];then
exit 1
fi
fiscripts/oe-find-native-sysroot +9
-1-PSEUDO="$OECORE_NATIVE_SYSROOT/usr/bin/pseudo" + +# Set up pseudo command +pseudo="$OECORE_NATIVE_SYSROOT/usr/bin/pseudo" +if [ -e "$pseudo" ]; then + echo "PSEUDO=$pseudo" + PSEUDO="$pseudo" +else + echo "PSEUDO $pseudo is not found." +fiscripts/oe-run-native +0
-1@@ -22,34 +22,39 @@ # if [ $# -lt 1 -o "$1" = '--help' -o "$1" = '-h' ] ; then - echo 'oe-run-native: error: the following arguments are required:<native tool>'
scripts/oe-run-native +1
-1- echo 'Usage: oe-run-native tool [parameters]' + echo 'oe-run-native: error: the following arguments are required:<native recipe> <native tool>'
scripts/oe-run-native +7
-1+ echo 'Usage: oe-run-native native-recipe tool [parameters]' echo '' echo 'OpenEmbedded run-native - runs native tools' echo '' echo 'arguments:' + echo ' native-recipe The recipe which provoides tool' echo ' tool Native tool to run' echo '' exit 2 fi +native_recipe="$1" +tool="$2" +shift + SYSROOT_SETUP_SCRIPT=`which oe-find-native-sysroot 2> /dev/null` if [ -z "$SYSROOT_SETUP_SCRIPT" ]; then echo "Error: Unable to find oe-find-native-sysroot script" exit 1 fi -. $SYSROOT_SETUP_SCRIPT +. $SYSROOT_SETUP_SCRIPT $native_recipe OLD_PATH=$PATH # look for a tool only in native sysrootPATH=$OECORE_NATIVE_SYSROOT/usr/bin:$OECORE_NATIVE_SYSROOT/ bin:$OECORE_NATIVE_SYSROOT/usr/sbin:$OECORE_NATIVE_SYSROOT/sbin
scripts/oe-run-native +2
-2-tool=`/usr/bin/which $1 2>/dev/null` +tool=`/usr/bin/which $tool 2>/dev/null` if [ -n "$tool" ] ; then # add old path to allow usage of host tools PATH=$PATH:$OLD_PATH $@ else - echo "Error: Unable to find '$1' in native sysroot" + echo "Error: Unable to find '$tool' in $PATH" exit 1 fiscripts/runqemu-export-rootfs +0
-0@@ -44,7 +44,7 @@ if [ -z "$SYSROOT_SETUP_SCRIPT" ]; then echo "Did you forget to source your build environment setupscript?"
exit 1
fi
-. $SYSROOT_SETUP_SCRIPT
+. $SYSROOT_SETUP_SCRIPT meta-ide-supportif [ ! -e "$OECORE_NATIVE_SYSROOT/usr/bin/unfsd" ]; then
echo "Error: Unable to find unfsd binary in
$OECORE_NATIVE_SYSROOT/usr/bin/"scripts/runqemu-extract-sdk +0
-0@@ -35,7 +35,7 @@ if [ -z "$SYSROOT_SETUP_SCRIPT" ]; then echo "Did you forget to source your build system environment setupscript?"
exit 1
fi
-. $SYSROOT_SETUP_SCRIPT
+. $SYSROOT_SETUP_SCRIPT meta-ide-support
PSEUDO_OPTS="-P $OECORE_NATIVE_SYSROOT/usr"ROOTFS_TARBALL=$1
// Robert
Quoted 55 lines · brian avery
oe-find-native-sysroot: Recipe Specific Sysroots have eliminated the large
STAGING_DIR_NATIVE. Now, we will rely on the meta-ide-support sysroot that is what was populating the largeSTAGING_DIR_NATIVEin previous versions anyway. We now look forRECIPE_SYSROOT_NATIVE.[YOCTO #11119]
Signed-off-by brian avery <[email protected]>--- scripts/oe-find-native-sysroot | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)scripts/oe-find-native-sysroot +1
-2@@ -2,7 +2,7 @@ # # Find a native sysroot to use - either from an in-tree OE build or # from a toolchain installation. It then ensures the variable -# $OECORE_NATIVE_SYSROOT is set to the sysroot's base directory, and sets +# $OECORE_NATIVE_SYSROOT is set to the sysroot's base directory, and sets # $PSEUDO to the path of the pseudo binary. # # This script is intended to be run within other scripts by source'ing@@ -54,10 +54,10 @@ if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then exit 1 fi touch conf/sanity.conf - OECORE_NATIVE_SYSROOT=`bitbake -e | grep ^STAGING_DIR_NATIVE| cut -d '"' -f2`
+ OECORE_NATIVE_SYSROOT=`bitbake -e meta-ide-support | grep
^RECIPE_SYSROOT_NATIVE | cut -d '"' -f2`
rm -fconf/sanity.conf
else
- OECORE_NATIVE_SYSROOT=`bitbake -e | grep ^STAGING_DIR_NATIVE
| cut -d '"' -f2`
+ OECORE_NATIVE_SYSROOT=`bitbake -e meta-ide-support | grep
^RECIPE_SYSROOT_NATIVE | cut -d '"' -f2`
fi
else
echo "Error: Unable to locate bitbake command."scripts/oe-find-native-sysroot +0
-1@@ -72,7 +72,7 @@ fi if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then # This indicates that there was an error running bitbake -e that # the user needs to be informed of - echo "There was an error running bitbake to determine
STAGING_DIR_NATIVE"
+ echo "There was an error running bitbake to determineRECIPE_SYSROOT_NATIVE"
echo "Here is the output from bitbake -e"
bitbake -e
exit 1Quoted 1 line
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [PATCH 1/2] scripts: change way we find native tools (pseudo)
Quoted 15 lines · Brian Avery
Hi Robert,
I was definitely looking at only the extract-rootfs issue and didn't remember seeing your above patch. I agree that we need a broader solution than the one I did. I tried applying yours but had some issues. Your patch did fix the runqemu-extract-rootfs, but not when I had INHERIT+= "
rm_work". Also, I had trouble running the oe-run-native script. It seems like the help is reversed from what order it is expecting? I may be missing something, it's getting late; but I'll look at it tomoro and see if I can't expand on your patch for a more generic solution. Issues from the run below.
ty,
b
an intel employee
Quoted 3 lines
$ bitbake bmap-tools-native -caddto_recipe_sysroot$ oe-run-native bmap-tools-native bmaptool
That's odd, it is the right order as the help text shows, it works well for me. Maybe he/you can try to add "set -x" in the recipe to see what happend.
$ bitbake bmap-tools-native -caddto_recipe_sysroot
$ oe-run-native bmap-tools-native bmaptool
Running bitbake -e bmap-tools-native
PSEUDO /buildarea/lyang1/test_q2/tmp/work/x86_64-linux/bmap-tools-native/3.2-r0/recipe-sysroot-native/usr/bin/pseudo is not found.
usage: bmaptool [-h] [--version] [-q] [-d] {create,copy} ...
bmaptool: error: too few arguments// Robert
Quoted 360 lines
Running bitbake -e bmaptool
ERROR: Nothing PROVIDES 'bmaptool'. Close matches:
bmap-tools
mtools
There was an error running bitbake to determine
STAGING_DIR_NATIVEHere is the output from bitbake -e bmaptool
WARNING: Host distribution "ubuntu-14.04" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution. Loading cache...done. Loaded 1299 entries from dependency cache. Summary: There was 1 WARNING message shown.
Summary: There was 1 ERROR message shown, returning a non-zero exit code.$ oe-run-native bmaptool bmap-tools-nativeRunning bitbake -e bmap-tools-native
PSEUDO …/tmp/work/x86_64-linux/bmap-tools-native/3.2-r0/recipe-sysroot-native/usr/bin/pseudo is not found.
Error: Unable to find '' in .../tmp/work/x86_64-linux/bmap-tools-native/3.2-r0/recipe-sysroot-native/usr/bin:.../tmp/work/x86_64-linux/bmap-tools-native/3.2-r0/recipe-sysroot-native/bin:.../tmp/work/x86_64-linux/bmap-tools-native/3.2-r0/recipe-sysroot-native/usr/sbin:.../tmp/work/x86_64-linux/bmap-tools-native/3.2-r0/recipe-sysroot-native/sbin
bavery@bavery-WS-DESK:...$ oe-run-nativeoe-run-native: error: the following arguments are required: <native recipe> <native tool>
Usage: oe-run-native native-recipe tool [parameters]
OpenEmbedded run-native - runs native tools
arguments:
native-recipe The recipe which provoides tool
tool Native tool to run
On Thu, Apr 6, 2017 at 3:26 AM, Robert Yang <[email protected] <mailto:[email protected]>> wrote:
Hi Brian and RP,
This patch can't fix the problem of
scripts/oe-run-native, it only can run the native tools which is depended by meta-ide-support, for example:$ bitbake bmap-tools-native meta-ide-support
$ oe-run-native bmaptool --help # exmaple from dev-manual-start.xmlError: Unable to find 'bmaptool' in native sysroot
I think that we need consider the patch that I had sent before:
git://git.openembedded.org/openembedded-core-contrib
<http://git.openembedded.org/openembedded-core-contrib> rbt/rssfix
http://cgit.openembedded.org/openembedded-core-contrib/log/?h=rbt/rssfix
<http://cgit.openembedded.org/openembedded-core-contrib/log/?h=rbt/rssfix>Robert Yang (1):
oe-find-native-sysroot: work with RSSSubject: [PATCH 1/1] oe-find-native-sysroot: work with RSS
The generic
STAGING_DIR_NATIVEis gone since RSS, so when findOECORE_NATIVE_SYSROOT, the user has to specify which recipe'sSTAGING_DIR_NATIVEwill be used asOECORE_NATIVE_SYSROOT.* The usage is changed from ". oe-find-native-sysroot" to ". oe-find-native-sysroot <recipe>".
* The oe-run-native's usage has changed from "oe-run-native tool" to "oe-run-native native-recipe tool".Signed-off-by Robert Yang <[email protected]<mailto:[email protected]>>
---
scripts/oe-find-native-sysroot| 56 ++++++++++++++++++++++++++++--------------
scripts/oe-run-native| 15 +++++++----
scripts/runqemu-export-rootfs| 2 +-
scripts/runqemu-extract-sdk| 2 +-
4 files changed, 49 insertions(+), 26 deletions(-)diff --git a/scripts/oe-find-native-sysroot b/scripts/oe-find-native-sysroot index
3f4c29da8a..59fe3f3118100755
--- a/scripts/oe-find-native-sysroot
+++ b/scripts/oe-find-native-sysroot
@@ -9,7 +9,7 @@
# it, e.g:
#
# SYSROOT_SETUP_SCRIPT=which oe-find-native-sysroot
-# . $SYSROOT_SETUP_SCRIPT
+# . $SYSROOT_SETUP_SCRIPT <recipe>
#
# This script will terminate execution of your calling program unless # you set a variable $SKIP_STRICT_SYSROOT_CHECK to a non-empty string
@@ -30,8 +30,8 @@
# with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.-if [ "$1" = '--help' -o "$1" = '-h' ] ; then
- echo 'Usage: oe-find-native-sysroot [-h|--help]'
+if [ "$1" = '--help' -o "$1" = '-h' -o $# -ne 1 ] ; then
+ echo 'Usage: oe-find-native-sysroot <recipe> [-h|--help]'
echo ''
echo 'OpenEmbedded find-native-sysroot - helper script to set' echo 'environment variablesOECORE_NATIVE_SYSROOTand PSEUDO'
@@ -39,11 +39,31 @@ if [ "$1" = '--help' -o "$1" = '-h' ] ; then
echo 'executable binary'
echo ''
echo 'options:'
+ echo ' recipe itsSTAGING_DIR_NATIVEis used as native
sysroot'
echo ' -h, --help show this help message and exit'
echo ''
exit 2
fi+# Global vars
+BITBAKE_E=""
+OECORE_NATIVE_SYSROOT=""
+
+set_oe_native_sysroot(){
+ echo "Running bitbake -e $1"
+ BITBAKE_E="bitbake -e $1"
+ OECORE_NATIVE_SYSROOT=`echo "$BITBAKE_E" | grep ^STAGING_DIR_NATIVE |
cut -d '"' -f2`
+
+ if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then
+ # This indicates that there was an error running bitbake -e that
+ # the user needs to be informed of
+ echo "There was an error running bitbake to determine
STAGING_DIR_NATIVE"
+ echo "Here is the output from bitbake -e $1"
+ echo "$BITBAKE_E"
+ exit 1
+ fi
+}
+
if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then
BITBAKE=which bitbake 2> /dev/null
if [ "x$BITBAKE" != "x" ]; then
@@ -54,10 +74,10 @@ if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then
exit 1
fi
touchconf/sanity.conf
- OECORE_NATIVE_SYSROOT=`bitbake -e meta-ide-support | grep
^RECIPE_SYSROOT_NATIVE | cut -d '"' -f2`
+set_oe_native_sysroot$1
rm -fconf/sanity.conf
else
- OECORE_NATIVE_SYSROOT=`bitbake -e meta-ide-support | grep
^RECIPE_SYSROOT_NATIVE | cut -d '"' -f2`
+set_oe_native_sysroot$1
fi
else
echo "Error: Unable to locate bitbake command."
@@ -69,21 +89,11 @@ if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then
fi
fi-if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then
- # This indicates that there was an error running bitbake -e that
- # the user needs to be informed of
- echo "There was an error running bitbake to determine
RECIPE_SYSROOT_NATIVE"
- echo "Here is the output from bitbake -e"
- bitbake -e
- exit 1
-fi
-
-# Set up pseudo command
-if [ ! -e "$OECORE_NATIVE_SYSROOT/usr/bin/pseudo" ]; then
- echo "Error: Unable to find pseudo binary in
$OECORE_NATIVE_SYSROOT/usr/bin/"
+if [ ! -e "$OECORE_NATIVE_SYSROOT/" ]; then
+ echo "Error: $OECORE_NATIVE_SYSROOT doesn't exist."if [ "x$OECORE_DISTRO_VERSION" = "x" ]; then
- echo "Have you run 'bitbake meta-ide-support'?"
+ echo "Have you run 'bitbake $1 -caddto_recipe_sysroot'?"
else
echo "This shouldn't happen - something is wrong with your
toolchain installation"
fi
@@ -92,4 +102,12 @@ if [ ! -e "$OECORE_NATIVE_SYSROOT/usr/bin/pseudo" ]; then
exit 1
fi
fi
-PSEUDO="$OECORE_NATIVE_SYSROOT/usr/bin/pseudo"
+
+# Set up pseudo command +pseudo="$OECORE_NATIVE_SYSROOT/usr/bin/pseudo"
+if [ -e "$pseudo" ]; then
+ echo "PSEUDO=$pseudo"
+ PSEUDO="$pseudo"
+else
+ echo "PSEUDO $pseudo is not found."
+fi
diff --git a/scripts/oe-run-native b/scripts/oe-run-native
indexf2453e705a..de3c02ed34100755
--- a/scripts/oe-run-native
+++ b/scripts/oe-run-native
@@ -22,34 +22,39 @@
#if [ $# -lt 1 -o "$1" = '--help' -o "$1" = '-h' ] ; then
- echo 'oe-run-native: error: the following arguments are required:
<native tool>'
- echo 'Usage: oe-run-native tool [parameters]'
+ echo 'oe-run-native: error: the following arguments are required:
<native recipe> <native tool>'
+ echo 'Usage: oe-run-native native-recipe tool [parameters]'
echo ''
echo 'OpenEmbedded run-native - runs native tools' echo ''
echo 'arguments:'
+ echo ' native-recipe The recipe which provoides tool'
echo ' tool Native tool to run'
echo ''
exit 2
fi+native_recipe="$1"
+tool="$2"
+shift
+
SYSROOT_SETUP_SCRIPT=which oe-find-native-sysroot 2> /dev/nullif [ -z "$SYSROOT_SETUP_SCRIPT" ]; then
echo "Error: Unable to find oe-find-native-sysroot script" exit 1
fi
-. $SYSROOT_SETUP_SCRIPT
+. $SYSROOT_SETUP_SCRIPT $native_recipeOLD_PATH=$PATH
# look for a tool only in native sysroot
PATH=$OECORE_NATIVE_SYSROOT/usr/bin:$OECORE_NATIVE_SYSROOT/bin:$OECORE_NATIVE_SYSROOT/usr/sbin:$OECORE_NATIVE_SYSROOT/sbin -tool=
/usr/bin/which $1 2>/dev/null
+tool=/usr/bin/which $tool 2>/dev/nullif [ -n "$tool" ] ; then
# add old path to allow usage of host tools PATH=$PATH:$OLD_PATH $@
else
- echo "Error: Unable to find '$1' in native sysroot"
+ echo "Error: Unable to find '$tool' in $PATH"
exit 1
fi
diff --git a/scripts/runqemu-export-rootfs b/scripts/runqemu-export-rootfs index7ebc07194d..c7992d8223100755
--- a/scripts/runqemu-export-rootfs
+++ b/scripts/runqemu-export-rootfs
@@ -44,7 +44,7 @@ if [ -z "$SYSROOT_SETUP_SCRIPT" ]; then
echo "Did you forget to source your build environment setup script?" exit 1
fi
-. $SYSROOT_SETUP_SCRIPT
+. $SYSROOT_SETUP_SCRIPT meta-ide-supportif [ ! -e "$OECORE_NATIVE_SYSROOT/usr/bin/unfsd" ]; then
echo "Error: Unable to find unfsd binary in
$OECORE_NATIVE_SYSROOT/usr/bin/"
diff --git a/scripts/runqemu-extract-sdk b/scripts/runqemu-extract-sdk index32ddd485b6..2a0dd50e0e100755
--- a/scripts/runqemu-extract-sdk
+++ b/scripts/runqemu-extract-sdk
@@ -35,7 +35,7 @@ if [ -z "$SYSROOT_SETUP_SCRIPT" ]; then
echo "Did you forget to source your build system environment setup script?" exit 1
fi
-. $SYSROOT_SETUP_SCRIPT
+. $SYSROOT_SETUP_SCRIPT meta-ide-support
PSEUDO_OPTS="-P $OECORE_NATIVE_SYSROOT/usr"ROOTFS_TARBALL=$1
// Robert
On 04/05/2017 06:22 AM, brian avery wrote:
oe-find-native-sysroot: Recipe Specific Sysroots have eliminated the large
STAGING_DIR_NATIVE. Now, we will rely on the meta-ide-support sysroot that is what was populating the largeSTAGING_DIR_NATIVEin previous versions anyway. We now look forRECIPE_SYSROOT_NATIVE.[YOCTO #11119]
Signed-off-by brian avery <[email protected]<mailto:[email protected]>>
---
scripts/oe-find-native-sysroot| 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)diff --git a/scripts/oe-find-native-sysroot b/scripts/oe-find-native-sysroot index 13a5c46..3f4c29d 100755
--- a/scripts/oe-find-native-sysroot
+++ b/scripts/oe-find-native-sysroot
@@ -2,7 +2,7 @@
#
# Find a native sysroot to use - either from an in-tree OE build or # from a toolchain installation. It then ensures the variable
-# $OECORE_NATIVE_SYSROOT is set to the sysroot's base directory, and sets +# $OECORE_NATIVE_SYSROOT is set to the sysroot's base directory, and sets
# $PSEUDO to the path of the pseudo binary.
#
# This script is intended to be run within other scripts by source'ing
@@ -54,10 +54,10 @@ if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then
exit 1
fi
touchconf/sanity.conf
- OECORE_NATIVE_SYSROOT=`bitbake -e | grep
^STAGING_DIR_NATIVE | cut -d '"' -f2`
+ OECORE_NATIVE_SYSROOT=`bitbake -e meta-ide-support | grep
^RECIPE_SYSROOT_NATIVE | cut -d '"' -f2`
rm -fconf/sanity.conf
else
- OECORE_NATIVE_SYSROOT=`bitbake -e | grep
^STAGING_DIR_NATIVE | cut -d '"' -f2`
+ OECORE_NATIVE_SYSROOT=`bitbake -e meta-ide-support | grep
^RECIPE_SYSROOT_NATIVE | cut -d '"' -f2`
fi
else
echo "Error: Unable to locate bitbake command."
@@ -72,7 +72,7 @@ fi
if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then
# This indicates that there was an error running bitbake -e that # the user needs to be informed of
- echo "There was an error running bitbake to determine
STAGING_DIR_NATIVE"
+ echo "There was an error running bitbake to determine
RECIPE_SYSROOT_NATIVE"
echo "Here is the output from bitbake -e"
bitbake -e
exit 1--
_______________________________________________
Openembedded-core mailing list [email protected] <mailto:[email protected]>
http://lists.openembedded.org/mailman/listinfo/openembedded-core
<http://lists.openembedded.org/mailman/listinfo/openembedded-core>
PATCH 2/2 meta-ide-support: exclude this recipe from rm_work
In reply to brian averyThe results of meta-ide-support are used by utilities like runqemu and runqemu-extract-sdk. Since the usr/bin that meta-ide-support creates is subsequently removed bu rm_work, we exclude this recipe from the rm_work list.
[YOCTO #11119]
--- meta/recipes-core/meta/meta-ide-support.bb | 1 + 1 file changed, 1 insertion(+)
meta/recipes-core/meta/meta-ide-support.bb +1 -0
@@ -4,6 +4,7 @@ LICENSE = "MIT" DEPENDS = "virtual/libc gdb-cross-${TARGET_ARCH} qemu-native qemu-helper-native unfs3-native" PR = "r3" +RM_WORK_EXCLUDE += "${PN}" inherit meta toolchain-scripts nopackages
Signature · 1 line
1.9.1