GCC can use ZSTD to compress debugging/LTO information in binary objects. However, on riscv64, compiling zstd requires libatomic which is not available at this point.
In order to make the build work, we explicitely disable ZSTD in GCC and build ZSTD after libatomic is available.
Although ZSTD offers great compression, we won't have any disadvantages through this change since we do not ship any debugging information and at this point in time to not use LTO.
Signed-off-by: Michael Tremer michael.tremer@ipfire.org --- lfs/gcc | 3 ++- make.sh | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/lfs/gcc b/lfs/gcc index f78891e24..563e94c16 100644 --- a/lfs/gcc +++ b/lfs/gcc @@ -182,7 +182,8 @@ EXTRA_CONFIG += \ --disable-multilib \ --with-bugurl=https://bugzilla.ipfire.org \ --disable-libunwind-exceptions \ - --enable-gnu-unique-object + --enable-gnu-unique-object \ + --without-zstd
export XCFLAGS = $(CFLAGS) export TCFLAGS = $(CFLAGS) diff --git a/make.sh b/make.sh index cb11b36ab..522fe8401 100755 --- a/make.sh +++ b/make.sh @@ -1079,7 +1079,6 @@ buildbase() { lfsmake2 tzdata lfsmake2 cleanup-toolchain lfsmake2 zlib - lfsmake2 zstd lfsmake2 autoconf lfsmake2 automake lfsmake2 libtool @@ -1090,6 +1089,7 @@ buildbase() { lfsmake2 libxcrypt lfsmake2 file lfsmake2 gcc + lfsmake2 zstd lfsmake2 sed lfsmake2 berkeley lfsmake2 coreutils