summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Packham <judge.packham@gmail.com>2021-08-29 09:27:29 (GMT)
committerChris Packham <judge.packham@gmail.com>2021-08-29 09:27:29 (GMT)
commitb346fa58b15b9880b714c6f0cc4dddaf84d3da6f (patch)
tree60bf7a60bcfd2f3c516699128dc787933f496e73
parentf64bd272d8b879662ddbfecc9661553cac987c92 (diff)
cc/gcc: Add options for zstd usage
GCC can support using zstd compression for LTO object files. By default GCC's configure will enable this if libzstd is installed on the machine building the toolchain. This may be undesirable if the toolchain is to be used on a different machine. Add an option to control zstd usage and set the default to the same as the current behaviour (i.e. auto). Fixes #1579 Signed-off-by: Chris Packham <judge.packham@gmail.com>
-rw-r--r--config/cc/gcc.in19
-rw-r--r--scripts/build/cc/gcc.sh5
2 files changed, 24 insertions, 0 deletions
diff --git a/config/cc/gcc.in b/config/cc/gcc.in
index 4d0a3ee..f4b0b7e 100644
--- a/config/cc/gcc.in
+++ b/config/cc/gcc.in
@@ -179,6 +179,25 @@ config CC_GCC_USE_LTO
help
Enable the Link Time Optimisations.
+config CC_GCC_LTO_ZSTD
+ tristate
+ prompt "Support LTO compression with zstd"
+ default m
+ depends on CC_GCC_USE_LTO
+ depends on GCC_10_or_later
+ depends on ! STATIC_TOOLCHAIN
+ help
+ Support zstd compression for LTO object files. This will require
+ libzstd to be installed when using the toolchain
+
+ Option | ZSTD use | Associated ./configure switch
+ ---------+--------------------+--------------------------------
+ Y | forcibly used | --with-zstd
+ M | auto | (none, ./configure decides)
+ N | forcibly not used | --without-zstd
+
+ If unsure, say 'M'
+
#-----------------------------------------------------------------------------
comment "Settings for libraries running on target"
diff --git a/scripts/build/cc/gcc.sh b/scripts/build/cc/gcc.sh
index 4e0def0..fdfa7d6 100644
--- a/scripts/build/cc/gcc.sh
+++ b/scripts/build/cc/gcc.sh
@@ -1130,6 +1130,11 @@ do_gcc_backend() {
else
extra_config+=("--disable-lto")
fi
+ case "${CT_CC_GCC_LTO_ZSTD}" in
+ y) extra_config+=("--with-zstd");;
+ m) ;;
+ *) extra_config+=("--without-zstd");;
+ esac
if [ ${#host_libstdcxx_flags[@]} -ne 0 ]; then
extra_config+=("--with-host-libstdcxx=${host_libstdcxx_flags[*]}")