[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#48721] [PATCH v2] gnu: gcc-8: Make static libs reproducible
From: |
Ludovic Courtès |
Subject: |
[bug#48721] [PATCH v2] gnu: gcc-8: Make static libs reproducible |
Date: |
Fri, 04 Jun 2021 17:46:08 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) |
Hi Carl,
Carl Dong <contact@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’.