[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