On 04/07/2017 10:48 AM, Brian Avery wrote:
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

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


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




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.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
    <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 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".

    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..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 <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
    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:
    <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
     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 <[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
                     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
    [email protected]
    <mailto:[email protected]>
    http://lists.openembedded.org/mailman/listinfo/openembedded-core
    <http://lists.openembedded.org/mailman/listinfo/openembedded-core>


--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to