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

(From OE-Core rev: e2f6d937bd897083779507ecb9ecd15513b35f1f)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Robert Yang 2017-04-12 14:29:12 -07:00 committed by Richard Purdie
parent 5897c5edc4
commit 4a0b6af446
4 changed files with 49 additions and 26 deletions

View File

@ -9,7 +9,7 @@
# it, e.g: # it, e.g:
# #
# SYSROOT_SETUP_SCRIPT=`which oe-find-native-sysroot` # 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 # This script will terminate execution of your calling program unless
# you set a variable $SKIP_STRICT_SYSROOT_CHECK to a non-empty string # 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., # with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
if [ "$1" = '--help' -o "$1" = '-h' ] ; then if [ "$1" = '--help' -o "$1" = '-h' -o $# -ne 1 ] ; then
echo 'Usage: oe-find-native-sysroot [-h|--help]' echo 'Usage: oe-find-native-sysroot <recipe> [-h|--help]'
echo '' echo ''
echo 'OpenEmbedded find-native-sysroot - helper script to set' echo 'OpenEmbedded find-native-sysroot - helper script to set'
echo 'environment variables OECORE_NATIVE_SYSROOT and PSEUDO' echo 'environment variables OECORE_NATIVE_SYSROOT and PSEUDO'
@ -39,11 +39,31 @@ if [ "$1" = '--help' -o "$1" = '-h' ] ; then
echo 'executable binary' echo 'executable binary'
echo '' echo ''
echo 'options:' echo 'options:'
echo ' recipe its STAGING_DIR_NATIVE is used as native sysroot'
echo ' -h, --help show this help message and exit' echo ' -h, --help show this help message and exit'
echo '' echo ''
exit 2 exit 2
fi 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 if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then
BITBAKE=`which bitbake 2> /dev/null` BITBAKE=`which bitbake 2> /dev/null`
if [ "x$BITBAKE" != "x" ]; then if [ "x$BITBAKE" != "x" ]; then
@ -54,10 +74,10 @@ if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then
exit 1 exit 1
fi fi
touch conf/sanity.conf touch conf/sanity.conf
OECORE_NATIVE_SYSROOT=`bitbake -e | grep ^STAGING_DIR_NATIVE | cut -d '"' -f2` set_oe_native_sysroot $1
rm -f conf/sanity.conf rm -f conf/sanity.conf
else else
OECORE_NATIVE_SYSROOT=`bitbake -e | grep ^STAGING_DIR_NATIVE | cut -d '"' -f2` set_oe_native_sysroot $1
fi fi
else else
echo "Error: Unable to locate bitbake command." echo "Error: Unable to locate bitbake command."
@ -69,21 +89,11 @@ if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then
fi fi
fi fi
if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then if [ ! -e "$OECORE_NATIVE_SYSROOT/" ]; then
# This indicates that there was an error running bitbake -e that echo "Error: $OECORE_NATIVE_SYSROOT doesn't exist."
# 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"
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 [ "x$OECORE_DISTRO_VERSION" = "x" ]; then 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 else
echo "This shouldn't happen - something is wrong with your toolchain installation" echo "This shouldn't happen - something is wrong with your toolchain installation"
fi fi
@ -92,4 +102,12 @@ if [ ! -e "$OECORE_NATIVE_SYSROOT/usr/bin/pseudo" ]; then
exit 1 exit 1
fi fi
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

View File

@ -22,34 +22,39 @@
# #
if [ $# -lt 1 -o "$1" = '--help' -o "$1" = '-h' ] ; then if [ $# -lt 1 -o "$1" = '--help' -o "$1" = '-h' ] ; then
echo 'oe-run-native: error: the following arguments are required: <native tool>' echo 'oe-run-native: error: the following arguments are required: <native recipe> <native tool>'
echo 'Usage: oe-run-native tool [parameters]' echo 'Usage: oe-run-native native-recipe tool [parameters]'
echo '' echo ''
echo 'OpenEmbedded run-native - runs native tools' echo 'OpenEmbedded run-native - runs native tools'
echo '' echo ''
echo 'arguments:' echo 'arguments:'
echo ' native-recipe The recipe which provoides tool'
echo ' tool Native tool to run' echo ' tool Native tool to run'
echo '' echo ''
exit 2 exit 2
fi fi
native_recipe="$1"
tool="$2"
shift
SYSROOT_SETUP_SCRIPT=`which oe-find-native-sysroot 2> /dev/null` SYSROOT_SETUP_SCRIPT=`which oe-find-native-sysroot 2> /dev/null`
if [ -z "$SYSROOT_SETUP_SCRIPT" ]; then if [ -z "$SYSROOT_SETUP_SCRIPT" ]; then
echo "Error: Unable to find oe-find-native-sysroot script" echo "Error: Unable to find oe-find-native-sysroot script"
exit 1 exit 1
fi fi
. $SYSROOT_SETUP_SCRIPT . $SYSROOT_SETUP_SCRIPT $native_recipe
OLD_PATH=$PATH OLD_PATH=$PATH
# look for a tool only in native sysroot # 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 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 if [ -n "$tool" ] ; then
# add old path to allow usage of host tools # add old path to allow usage of host tools
PATH=$PATH:$OLD_PATH $@ PATH=$PATH:$OLD_PATH $@
else else
echo "Error: Unable to find '$1' in native sysroot" echo "Error: Unable to find '$tool' in $PATH"
exit 1 exit 1
fi fi

View File

@ -44,7 +44,7 @@ if [ -z "$SYSROOT_SETUP_SCRIPT" ]; then
echo "Did you forget to source your build environment setup script?" echo "Did you forget to source your build environment setup script?"
exit 1 exit 1
fi fi
. $SYSROOT_SETUP_SCRIPT . $SYSROOT_SETUP_SCRIPT meta-ide-support
if [ ! -e "$OECORE_NATIVE_SYSROOT/usr/bin/unfsd" ]; then if [ ! -e "$OECORE_NATIVE_SYSROOT/usr/bin/unfsd" ]; then
echo "Error: Unable to find unfsd binary in $OECORE_NATIVE_SYSROOT/usr/bin/" echo "Error: Unable to find unfsd binary in $OECORE_NATIVE_SYSROOT/usr/bin/"

View File

@ -35,7 +35,7 @@ if [ -z "$SYSROOT_SETUP_SCRIPT" ]; then
echo "Did you forget to source your build system environment setup script?" echo "Did you forget to source your build system environment setup script?"
exit 1 exit 1
fi fi
. $SYSROOT_SETUP_SCRIPT . $SYSROOT_SETUP_SCRIPT meta-ide-support
PSEUDO_OPTS="-P $OECORE_NATIVE_SYSROOT/usr" PSEUDO_OPTS="-P $OECORE_NATIVE_SYSROOT/usr"
ROOTFS_TARBALL=$1 ROOTFS_TARBALL=$1