[OE-core] [PATCH v2 5/7] toolchain-shar-extract: pass env to post-relocate
Joshua Watt
jpewhacker at gmail.com
Fri Jun 1 22:08:16 UTC 2018
On Fri, 2018-06-01 at 14:02 -0700, Martin Kelly wrote:
> It's useful for the post-relocate scripts to be able to see the SDK
> environment, for example to see the values of CC, CXX etc. in order
> to
> dynamically generate toolchain files.
>
> To enable this, source the SDK environment script prior to calling
> the
> relocate scripts.
>
> Signed-off-by: Martin Kelly <mkelly at xevo.com>
> ---
> meta/classes/toolchain-scripts.bbclass | 17 +++++++++++++----
> meta/recipes-core/meta/meta-environment.bb | 5 +++--
> 2 files changed, 16 insertions(+), 6 deletions(-)
>
> diff --git a/meta/classes/toolchain-scripts.bbclass
> b/meta/classes/toolchain-scripts.bbclass
> index ae7bbef034..5f99fd8c03 100644
> --- a/meta/classes/toolchain-scripts.bbclass
> +++ b/meta/classes/toolchain-scripts.bbclass
> @@ -118,11 +118,20 @@ EOF
> }
>
> toolchain_create_post_relocate_script() {
> - script=$1
> - rm -f $script
> - touch $script
> + relocate_script=$1
> + sdk_script=$2
> + rm -f $relocate_script
> + touch $relocate_script
> +
> + cat >> $relocate_script <<EOF
> +# Source the SDK env script in case it is needed for the relocate
> scripts.
> +. $sdk_script
I had originally done something similar to this when I added support
for the post-relocate scripts with icecream. However, it is insufficent
because there can be multiple SDK environment scripts that need to be
sourced. In order to get a fully correct environment, I had to do:
# Setup environment
for env_setup_script in `ls $1/environment-setup-*`; do
. $env_setup_script
done
see meta/recipes-devtools/icecc-toolchain/icecc-toolchain/icecc-
setup.sh
> +status=\$?
> +if [ \$status != 0 ]; then
> + echo "\$0: Failed to source $sdk_script with status \$status"
> + exit \$status
> +fi
>
> - cat >> $script <<EOF
> if [ -d "${SDKPATHNATIVE}/post-relocate-setup.d/" ]; then
> for s in ${SDKPATHNATIVE}/post-relocate-setup.d/*; do
> \$s "\$1"
> diff --git a/meta/recipes-core/meta/meta-environment.bb
> b/meta/recipes-core/meta/meta-environment.bb
> index 09f757a087..74c0600c3d 100644
> --- a/meta/recipes-core/meta/meta-environment.bb
> +++ b/meta/recipes-core/meta/meta-environment.bb
> @@ -51,12 +51,13 @@ create_sdk_files() {
> # Setup site file for external use
> toolchain_create_sdk_siteconfig
> ${SDK_OUTPUT}/${SDKPATH}/site-config-${REAL_MULTIMACH_TARGET_SYS}
>
> - toolchain_create_sdk_env_script
> ${SDK_OUTPUT}/${SDKPATH}/environment-setup-
> ${REAL_MULTIMACH_TARGET_SYS}
> + sdk_script="${SDKPATH}/environment-setup-
> ${REAL_MULTIMACH_TARGET_SYS}"
> + toolchain_create_sdk_env_script ${SDK_OUTPUT}/${sdk_script}
>
> # Add version information
> toolchain_create_sdk_version
> ${SDK_OUTPUT}/${SDKPATH}/version-${REAL_MULTIMACH_TARGET_SYS}
>
> - toolchain_create_post_relocate_script
> ${SDK_OUTPUT}/${SDKPATH}/post-relocate-setup.sh
> + toolchain_create_post_relocate_script
> ${SDK_OUTPUT}/${SDKPATH}/post-relocate-setup.sh ${sdk_script}
> }
>
> do_install() {
More information about the Openembedded-core
mailing list