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: 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 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.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 ". > * 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 > --- > 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-sysro > ot > index 3f4c29da8a..59fe3f3118 100755 > --- 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 > # > # 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 [-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 > diff --git a/scripts/oe-run-native b/scripts/oe-run-native > index f2453e705a..de3c02ed34 100755 > --- 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: > ' > - echo 'Usage: oe-run-native tool [parameters]' > + echo 'oe-run-native: error: the following arguments are required: > ' > + 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 > fi > diff --git a/scripts/runqemu-export-rootfs b/scripts/runqemu-export-rootfs > index 7ebc07194d..c7992d8223 100755 > --- 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-support > > if [ ! -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 > index 32ddd485b6..2a0dd50e0e 100755 > --- 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 large STAGING_DIR_NATIVE in >> previous versions anyway. We now look for RECIPE_SYSROOT_NATIVE. >> >> [YOCTO #11119] >> >> Signed-off-by: brian avery >> --- >> 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 >> 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 >> >> -- > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core >