On Fri, 2021-10-15 at 19:06 +0200, Alexander Kanavin wrote:
> This allows significantly faster do_populate_sdk() (5 min -> 3 min for
> the sato sdk on my machine) and decompression, at the cost of SDK file
> taking up more disk space.

Can you quantify "more"?

I'd be interested to know if a higher compression helps and what the time/cost
tradeoff is too. Not sure I'm keep to have it increase in size. This likely
increases the eSDK size a lot too?

> If that's a significant concern, it's possible to increase the zstd
> compression level or even go back to xz compression.
> 
> Signed-off-by: Alexander Kanavin <a...@linutronix.de>
> ---
>  meta/classes/populate_sdk_base.bbclass | 10 ++++++++--
>  meta/files/toolchain-shar-extract.sh   |  9 ++++-----
>  2 files changed, 12 insertions(+), 7 deletions(-)
> 
> diff --git a/meta/classes/populate_sdk_base.bbclass 
> b/meta/classes/populate_sdk_base.bbclass
> index 49e166e697..92a23e2325 100644
> --- a/meta/classes/populate_sdk_base.bbclass
> +++ b/meta/classes/populate_sdk_base.bbclass
> @@ -50,17 +50,23 @@ TOOLCHAIN_TARGET_TASK_ATTEMPTONLY ?= ""
>  TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}"
>  
>  # Default archived SDK's suffix
> -SDK_ARCHIVE_TYPE ?= "tar.xz"
> +SDK_ARCHIVE_TYPE ?= "tar.zst"
>  SDK_XZ_COMPRESSION_LEVEL ?= "-9"
>  SDK_XZ_OPTIONS ?= "${XZ_DEFAULTS} ${SDK_XZ_COMPRESSION_LEVEL}"
>  
> -# To support different sdk type according to SDK_ARCHIVE_TYPE, now support 
> zip and tar.xz
> +SDK_ZSTD_COMPRESSION_LEVEL ?= ""
> +SDK_ZSTD_OPTIONS ?= "-T${ZSTD_THREADS} ${SDK_ZSTD_COMPRESSION_LEVEL}"
> +
> +# To support different sdk type according to SDK_ARCHIVE_TYPE, now support 
> zip, tar.zst and tar.xz
>  python () {
>      if d.getVar('SDK_ARCHIVE_TYPE') == 'zip':
>         d.setVar('SDK_ARCHIVE_DEPENDS', 'zip-native')
>         # SDK_ARCHIVE_CMD used to generate archived sdk 
> ${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE} from input dir 
> ${SDK_OUTPUT}/${SDKPATH} to output dir ${SDKDEPLOYDIR}
>         # recommand to cd into input dir first to avoid archive with buildpath
>         d.setVar('SDK_ARCHIVE_CMD', 'cd ${SDK_OUTPUT}/${SDKPATH}; zip -r -y 
> ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE} .')
> +    elif d.getVar('SDK_ARCHIVE_TYPE') == 'tar.zst':
> +       d.setVar('SDK_ARCHIVE_DEPENDS', 'zstd-native')
> +       d.setVar('SDK_ARCHIVE_CMD', 'cd ${SDK_OUTPUT}/${SDKPATH}; tar 
> ${SDKTAROPTS} -cf - . | zstd ${SDK_ZSTD_OPTIONS} > 
> ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE}')
>      else:
>         d.setVar('SDK_ARCHIVE_DEPENDS', 'xz-native')
>         d.setVar('SDK_ARCHIVE_CMD', 'cd ${SDK_OUTPUT}/${SDKPATH}; tar 
> ${SDKTAROPTS} -cf - . | xz ${SDK_XZ_OPTIONS} > 
> ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE}')
> diff --git a/meta/files/toolchain-shar-extract.sh 
> b/meta/files/toolchain-shar-extract.sh
> index 4386b985bb..4b8892af79 100644
> --- a/meta/files/toolchain-shar-extract.sh
> +++ b/meta/files/toolchain-shar-extract.sh
> @@ -51,11 +51,6 @@ if [ "$INST_ARCH" != "$SDK_ARCH" ]; then
>       fi
>  fi
>  
> -if ! xz -V > /dev/null 2>&1; then
> -     echo "Error: xz is required for installation of this SDK, please 
> install it first"
> -     exit 1
> -fi
> -
> 
> 

Deleting that is fine for testing but I think the final patch needs to do
better! ;-)

Cheers,

Richard

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#157005): 
https://lists.openembedded.org/g/openembedded-core/message/157005
Mute This Topic: https://lists.openembedded.org/mt/86353954/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to