poky/scripts/oe-run-native
Adrian Herrera 946e62145e scripts: oe-run-native, fix *-native directories
This fixes a crash with "find" when running a native tool and *-native
directories do not exist under the binary directory in the sysroot.
This happened because the directory wildcard was passed as part of the
root directory.
The directory wildcard is now passed by "-name", which returns an empty
result if no matching directory.

(From OE-Core rev: f6c90ed0ad24b7d4f892e22e088b1578824eb1d3)

Signed-off-by: Adrian Herrera <adrian.herrera@arm.com>
Change-Id: Iba7acd8bbd7e0beb4d25c984f6af7a4fd21486e6
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-01-15 13:39:25 +00:00

57 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
#
# Copyright (c) 2016, Intel Corporation.
#
# SPDX-License-Identifier: GPL-2.0-or-later
#
#
# This script is for running tools from native oe sysroot
#
if [ $# -lt 1 -o "$1" = '--help' -o "$1" = '-h' ] ; then
echo 'oe-run-native: 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 provides tool'
echo ' tool Native tool to run'
echo ''
exit 2
fi
native_recipe="$1"
tool="$2"
if [ "${native_recipe%-native}" = "$native_recipe" ]; then
echo Error: $native_recipe is not a native recipe
echo Error: Use \"oe-run-native -h\" for help
exit 1
fi
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 $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$(find $OECORE_NATIVE_SYSROOT/usr/bin -maxdepth 1 -name "*-native" -type d -printf ":%p")
tool_find=`/usr/bin/which $tool 2>/dev/null`
if [ -n "$tool_find" ] ; then
# add old path to allow usage of host tools
PATH=$PATH:$OLD_PATH "$@"
else
echo "Error: Unable to find '$tool' in $PATH"
echo "Error: Have you run 'bitbake $native_recipe -caddto_recipe_sysroot'?"
exit 1
fi