[40/50] gcc: Compile without ZSTD

Message ID 20220222125135.1211290-41-michael.tremer@ipfire.org
State Accepted
Commit 0b6ba4a0ca2e08cd9fc56e99e80d33a6fe88b395
Headers
Series [01/50] expat: Update to version 2.4.6 - Security/CVE fixes |

Commit Message

Michael Tremer Feb. 22, 2022, 12:51 p.m. UTC
  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(-)
  

Comments

Michael Tremer Feb. 23, 2022, 9:45 a.m. UTC | #1
Hello Peter,

Could you please revert this patch again?

Bird seems to (unconditionally) enable LTO which it shouldn’t. This patch shouldn’t break LTO at all, but it does.

Since this is not a priority right now, could you please just revert this patch?

-Michael

> On 22 Feb 2022, at 12:51, Michael Tremer <michael.tremer@ipfire.org> wrote:
> 
> 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
> -- 
> 2.30.2
>
  
Peter Müller Feb. 23, 2022, 3:56 p.m. UTC | #2
Hello Michael,

thanks for your reply.

Yeah, I saw the nightly builds failing across all architectures, too.

The offending patch has been revered:
https://git.ipfire.org/?p=ipfire-2.x.git;a=commit;h=8fa66ce750dee06140e55b689a0645860e005b11

Let's hope everything compiles again _now_ ... :-)

Thanks, and best regards,
Peter Müller


> Hello Peter,
> 
> Could you please revert this patch again?
> 
> Bird seems to (unconditionally) enable LTO which it shouldn’t. This patch shouldn’t break LTO at all, but it does.
> 
> Since this is not a priority right now, could you please just revert this patch?
> 
> -Michael
> 
>> On 22 Feb 2022, at 12:51, Michael Tremer <michael.tremer@ipfire.org> wrote:
>>
>> 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
>> -- 
>> 2.30.2
>>
>
  

Patch

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