fanquake
commented at 3:19 PM on May 11, 2026:
member
We don't use LTO in release builds, and neither do any of our dependencies, so disable support in GCC. This reduces what needs to be compiled when building the Guix toolchain. It would also make it clear if something started using it.
Also disable Native Language Support as this is also not needed:
The --enable-nls option enables Native Language Support (NLS), which lets GCC output diagnostics in languages other than American English. Native Language Support is enabled by default if not doing a canadian cross build.
If your review is incorrectly listed, please copy-paste <code><!--meta-tag:bot-skip--></code> into the comment that the bot should ignore.
<!--174a7506f384e20aa4161008e828411d-->
Conflicts
Reviewers, this pull request conflicts with the following ones:
#25573 (guix: produce a -static-pie bitcoind by fanquake)
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.
<!--5faf32d7da4f0f540f40219e4f7537a3-->
fanquake marked this as ready for review on May 11, 2026
winterrdog
commented at 8:14 PM on May 16, 2026:
contributor
in the PR description:
saves some compilation
i'd like to assume you meant 'saves some compilation time' rather than 'saves some compilation' - is that right ?
fanquake force-pushed on May 20, 2026
fanquake
commented at 3:52 PM on May 20, 2026:
member
i'd like to assume you meant 'saves some compilation time' rather than 'saves some compilation' - is that right ?
Maybe both? Skipping LTO means compiling less stuff (albeit not much) in Guix, when building the toolchain, which ultimately saves some time (across 6 toolchains).
winterrdog
commented at 6:03 PM on May 20, 2026:
contributor
Skipping LTO means compiling less stuff (albeit not much) in Guix, when building the toolchain, which ultimately saves some time (across 6 toolchains).
correct!
how about updating it to something like: 'This reduces what needs to be compiled and saves some compilation time when building the toolchain'? that way it captures both aspects you mentioned in turn making the description clearer
(just a suggestion though, no worries either way!)
fanquake force-pushed on May 28, 2026
fanquake force-pushed on Jun 2, 2026
sedited
commented at 12:31 PM on June 8, 2026:
contributor
Concept ACK
maflcko added the label DrahtBot Guix build requested on Jun 9, 2026
sedited
commented at 12:43 PM on June 9, 2026:
contributor
guix: mirror some arguments from linux-gcc to mingw-w64-gcc63809be6d1
guix: pass --disable-tm-clone-registry to base GCC
We don't need support for transactional memory.
> Disable TM clone registry in libgcc. It is enabled in libgcc by default.
> This option helps to reduce code size for embedded targets which do
> not use transactional memory.
https://gcc.gnu.org/install/configure.html
313ed191e9
fanquake force-pushed on Jul 3, 2026
fanquake
commented at 2:36 PM on July 3, 2026:
member
@willcl-ark not sure what has happened there. I've done builds on two different machines (x86_64 & aarch64) at 313ed191e9d46bb19012e677e9a8ec3c95d693b7, and getting:
This is a metadata mirror of the GitHub repository
bitcoin/bitcoin.
This site is not affiliated with GitHub.
Content is generated from a GitHub metadata backup.
generated: 2026-07-09 06:47 UTC