GNU bug report logs - #48721
[PATCH] gnu: gcc-8: Make static libs reproducible

Previous Next

Package: guix-patches;

Reported by: Carl Dong <contact <at> carldong.me>

Date: Fri, 28 May 2021 20:25:01 UTC

Severity: normal

Tags: patch

Fixed in version 83d9e2ee56cb0ca2a644074ad232503e25ac7116

Done: Carl Dong <contact <at> carldong.me>

Bug is archived. No further changes may be made.

Full log


Message #20 received at 48721 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Carl Dong <contact <at> carldong.me>
Cc: cmmarusich <at> gmail.com, 48721 <at> debbugs.gnu.org
Subject: Re: [PATCH v2] gnu: gcc-8: Make static libs reproducible
Date: Fri, 04 Jun 2021 17:46:08 +0200
Hi Carl,

Carl Dong <contact <at> carldong.me> skribis:

>> Well done.  Did you observe it in practice?  (On ‘core-updates’ maybe?)
>
> Thanks! Yes, we observed it when switching back from gcc-9 to gcc-8 for
> compiling Bitcoin Core. We use -static-libstdc++, which means that any
> non-reproducibility in libstdc++.a propagates into our produced binaries as
> well.

OK.

> To be clear, I was only able to identify the problem and fix thanks to your
> patch here:
> https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/patches/dico-libtool-deterministic.patch?h=b6094b1f0a6760b9f5296364cf5edb8a2e64953c

Oh.  (I suppose GCC doesn’t have a single ‘ltmain.sh’ that we could
patch instead of all these ‘configure’ scripts, right?)

>> I’m surprised that this is still an issue since this was fixed in
>> Libtool proper long ago, probably before GCC 8 was released.
>
> Right, unfortunately GCC maintains their own version of libtool, which hasn't
> been synced with upstream for a while. I documented the details here: https://reproducible-builds.org/docs/archives/#gnu-libtool

Great that you documented it!

> This fixes the nonreproducibility in gcc documented here:
> https://reproducible-builds.org/docs/archives/#gnu-libtool
>
> * gnu/packages/patches/gcc-8-sort-libtool-find-output.patch: New patch.
> * gnu/local.mk (dist_patch_DATA): Register it.
> * gnu/packages/gcc.scm (gcc-8)[source]: Apply it.
> ---
>  gnu/local.mk                                  |   1 +
>  gnu/packages/gcc.scm                          |   3 +-
>  .../gcc-8-sort-libtool-find-output.patch      | 399 ++++++++++++++++++

LGTM and OK for ‘master’.  Thanks!

Ludo’.




This bug report was last modified 3 years and 343 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.