guix: Use LTO to build releases #25391
pull fanquake wants to merge 2 commits into bitcoin:master from fanquake:lto_in_guix changing 2 files +11 −2-
fanquake commented at 1:21 pm on June 16, 2022: memberChanges required to use LTO in Guix (release) builds.
-
fanquake added the label Brainstorming on Jun 16, 2022
-
fanquake added the label Build system on Jun 16, 2022
-
DrahtBot commented at 3:02 pm on June 16, 2022: contributor
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
Code Coverage
For detailed information about the code coverage, see the test coverage report.
Reviews
See the guideline for information on the review process.
Type Reviewers Concept ACK laanwj, TheCharlatan Approach ACK hebasto If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.
Conflicts
Reviewers, this pull request conflicts with the following ones:
- #25573 ([POC] guix: produce a fully
-static-pie
bitcoind by fanquake) - #24123 (guix: Pointer Authentication and Branch Target Identification for aarch64 Linux 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.
- #25573 ([POC] guix: produce a fully
-
DrahtBot added the label Needs rebase on Jun 17, 2022
-
fanquake force-pushed on Jun 20, 2022
-
DrahtBot removed the label Needs rebase on Jun 20, 2022
-
fanquake force-pushed on Jun 21, 2022
-
fanquake force-pushed on Jun 21, 2022
-
fanquake force-pushed on Jun 22, 2022
-
laanwj commented at 11:54 am on June 22, 2022: memberConcept ACK. This would be great.
-
fanquake force-pushed on Jul 5, 2022
-
fanquake force-pushed on Jul 5, 2022
-
hebasto commented at 6:48 pm on July 10, 2022: member
Tested 076aa5ee3e9d86cc5f0b4fdfe8926a7f6a7078a2 on Ubuntu 22.04:
0$ make -C depends HOST=riscv64-linux-gnu LTO=1 NO_QT=1 1$ ./autogen.sh 2$ ./configure CONFIG_SITE=depends/riscv64-linux-gnu/share/config.site 3$ make clean 4$ make 5... 6 CXXLD libbitcoinconsensus.la 7/usr/lib/gcc-cross/riscv64-linux-gnu/11/../../../../riscv64-linux-gnu/bin/ld: secp256k1/.libs/libsecp256k1.a(libsecp256k1_la-secp256k1.o): Relocations in generic ELF (EM: 62) 8/usr/lib/gcc-cross/riscv64-linux-gnu/11/../../../../riscv64-linux-gnu/bin/ld: secp256k1/.libs/libsecp256k1.a(libsecp256k1_la-secp256k1.o): Relocations in generic ELF (EM: 62) 9/usr/lib/gcc-cross/riscv64-linux-gnu/11/../../../../riscv64-linux-gnu/bin/ld: secp256k1/.libs/libsecp256k1.a(libsecp256k1_la-secp256k1.o): Relocations in generic ELF (EM: 62) 10/usr/lib/gcc-cross/riscv64-linux-gnu/11/../../../../riscv64-linux-gnu/bin/ld: secp256k1/.libs/libsecp256k1.a(libsecp256k1_la-secp256k1.o): Relocations in generic ELF (EM: 62) 11/usr/lib/gcc-cross/riscv64-linux-gnu/11/../../../../riscv64-linux-gnu/bin/ld: secp256k1/.libs/libsecp256k1.a(libsecp256k1_la-secp256k1.o): Relocations in generic ELF (EM: 62) 12/usr/lib/gcc-cross/riscv64-linux-gnu/11/../../../../riscv64-linux-gnu/bin/ld: secp256k1/.libs/libsecp256k1.a(libsecp256k1_la-secp256k1.o): Relocations in generic ELF (EM: 62) 13/usr/lib/gcc-cross/riscv64-linux-gnu/11/../../../../riscv64-linux-gnu/bin/ld: secp256k1/.libs/libsecp256k1.a(libsecp256k1_la-secp256k1.o): Relocations in generic ELF (EM: 62) 14/usr/lib/gcc-cross/riscv64-linux-gnu/11/../../../../riscv64-linux-gnu/bin/ld: secp256k1/.libs/libsecp256k1.a(libsecp256k1_la-secp256k1.o): Relocations in generic ELF (EM: 62) 15/usr/lib/gcc-cross/riscv64-linux-gnu/11/../../../../riscv64-linux-gnu/bin/ld: secp256k1/.libs/libsecp256k1.a: error adding symbols: file in wrong format 16collect2: error: ld returned 1 exit status 17make[2]: *** [Makefile:6729: libbitcoinconsensus.la] Error 1 18make[2]: *** Waiting for unfinished jobs.... 19make[2]: Leaving directory '/home/hebasto/git/bitcoin/src' 20make[1]: *** [Makefile:18615: all-recursive] Error 1 21make[1]: Leaving directory '/home/hebasto/git/bitcoin/src' 22make: *** [Makefile:818: all-recursive] Error 1
UPDATE:
CONFIG_SITE
needs a absolute path. Sorry for the noise. -
fanquake commented at 2:44 pm on July 13, 2022: member
Tested https://github.com/bitcoin/bitcoin/commit/076aa5ee3e9d86cc5f0b4fdfe8926a7f6a7078a2 on Ubuntu 22.04:
I’m not sure what’s causing that (maybe a not-completely-clean build dir, and mix of compiled objects), but I don’t have any issues with this branch, following the same steps, using Ubuntu 22.04 and
riscv64-linux-gnu-g++-11
. -
in depends/packages/expat.mk:12 in 076aa5ee3e outdated
8@@ -9,6 +9,7 @@ define $(package)_set_vars 9 $(package)_config_opts += --disable-dependency-tracking --enable-option-checking 10 $(package)_config_opts += --without-xmlwf 11 $(package)_config_opts_linux=--with-pic 12+ $(package)_cflags += -fno-lto
hebasto commented at 8:57 pm on July 14, 2022:I’m pretty sure the https://github.com/libexpat/libexpat/commit/cf3c2aa0842187495ebe5f1bdb5f4f66c6ec3eff commit causes this problem.fanquake referenced this in commit d806407173 on Jul 18, 2022fanquake force-pushed on Jul 18, 2022fanquake renamed this:
[POC] guix: Use LTO to build releases
guix: Use LTO to build releases
on Jul 18, 2022maflcko added the label DrahtBot Guix build requested on Jul 18, 2022maflcko removed the label DrahtBot Guix build requested on Jul 18, 2022fanquake force-pushed on Jul 18, 2022fanquake referenced this in commit 8c9ea8a556 on Jul 19, 2022fanquake force-pushed on Jul 19, 2022sidhujag referenced this in commit 0ee5eaf9d5 on Jul 19, 2022fanquake force-pushed on Jul 20, 2022fanquake force-pushed on Jul 25, 2022fanquake force-pushed on Jul 27, 2022fanquake commented at 12:17 pm on July 27, 2022: memberI’ve rebased on master for #25697 and added a couple commits that are not ideal, but make Windows Guix builds “work” for bitcoin-qt.exe. See the 8ddce8af136bf0c9908c7d8f690433de7d0df418 commit for details. It would be handy if someone with a Windows machine, maybe @hebasto or @jarolrod, could test the bitcoin-qt.exe binary. Will update Guix hashes in the PR description shortly.hebasto commented at 1:31 pm on July 27, 2022: member… added a couple commits that are not ideal, but make Windows Guix builds “work” for bitcoin-qt.exe.
FWIW, there are some alternatives:
- disabling of accessibility, see my
220727-qt-win-lto
branch (definitely a suboptimal option) - using a non-gcc toolchain, e.g., LLVM-based?
fanquake force-pushed on Jul 29, 2022fanquake force-pushed on Jul 29, 2022fanquake force-pushed on Jul 29, 2022in depends/packages/qt.mk:189 in a0b1bf48ef outdated
179@@ -180,6 +180,9 @@ $(package)_config_opts_mingw32 += "QMAKE_LFLAGS = '$($(package)_ldflags)'" 180 $(package)_config_opts_mingw32 += "QMAKE_LIB = '$($(package)_ar) rc'" 181 $(package)_config_opts_mingw32 += -device-option CROSS_COMPILE="$(host)-" 182 $(package)_config_opts_mingw32 += -pch 183+ifneq ($(LTO),) 184+$(package)_config_opts_mingw32 += -ltcg 185+endif
hebasto commented at 12:40 pm on July 30, 2022:FWIW, adding the-ltcg
option saves 512 bytes only ofbitcoin-qt.exe
size being built in Guix.fanquake force-pushed on Aug 4, 2022fanquake removed the label Brainstorming on Aug 4, 2022fanquake marked this as ready for review on Aug 4, 2022jarolrod commented at 3:19 am on August 6, 2022: memberGUIX hashes
x86:
0ebcfc1f5c645f51c2f7acae8408f40c3df52ffd665bb773a3c28045d6f054d17 guix-build-2ae76e6719bd/output/aarch64-linux-gnu/SHA256SUMS.part 10c799abe1a0301fdaa618d2eab7142c664848e5080a1e88a78364b4e025d5ddd guix-build-2ae76e6719bd/output/aarch64-linux-gnu/bitcoin-2ae76e6719bd-aarch64-linux-gnu-debug.tar.gz 2b5c90dbc387a181424a03abc3161c594a98d66c7dbc7ce81d656fb7100f63393 guix-build-2ae76e6719bd/output/aarch64-linux-gnu/bitcoin-2ae76e6719bd-aarch64-linux-gnu.tar.gz 3e97e794133f6f4d3420ae898456cf6135a6869fe9fd22dd57711d4906e789ac5 guix-build-2ae76e6719bd/output/arm-linux-gnueabihf/SHA256SUMS.part 430be2679dfb3c4c9093299cd18e2d283c1159767e8830ac90391fd4dd869f033 guix-build-2ae76e6719bd/output/arm-linux-gnueabihf/bitcoin-2ae76e6719bd-arm-linux-gnueabihf-debug.tar.gz 5131e9ec0fcdc31ed3586a9a4909b8ce415813d1de4d87c78aab5126eb104855e guix-build-2ae76e6719bd/output/arm-linux-gnueabihf/bitcoin-2ae76e6719bd-arm-linux-gnueabihf.tar.gz 69d37de667417677aade6a00e545f2973c685440b1c319a85438781c713440442 guix-build-2ae76e6719bd/output/arm64-apple-darwin/SHA256SUMS.part 75bfcca644ae1fe834eabeb4684b0ac31ee102287387fa06e70de3b1a1f088834 guix-build-2ae76e6719bd/output/arm64-apple-darwin/bitcoin-2ae76e6719bd-arm64-apple-darwin-unsigned.dmg 8670ee693c9b29e3dc4318c6e29c29a49203fa2cf845003e8b797b2ed085077af guix-build-2ae76e6719bd/output/arm64-apple-darwin/bitcoin-2ae76e6719bd-arm64-apple-darwin-unsigned.tar.gz 98f9257e1b6dc9931b7c5f4b28ab40e111a825e2db55ec39dfcc2d8e2d0a3f5d2 guix-build-2ae76e6719bd/output/arm64-apple-darwin/bitcoin-2ae76e6719bd-arm64-apple-darwin.tar.gz 107eb928905086d0b765179a80ae9d7fa369a8453b5654c07c6f6f24156669dc66 guix-build-2ae76e6719bd/output/dist-archive/bitcoin-2ae76e6719bd.tar.gz 11dff214132304b59b2a1aa396a446c410c2e7cf43d0bcdc15480a8d9dcfe97ede guix-build-2ae76e6719bd/output/powerpc64-linux-gnu/SHA256SUMS.part 12c18d43eb59aaa3344a22c770792c4f0d67dab86a63012e8a6b28ee743fd20748 guix-build-2ae76e6719bd/output/powerpc64-linux-gnu/bitcoin-2ae76e6719bd-powerpc64-linux-gnu-debug.tar.gz 1395d39d375db11cb0a1918ed630e5cd3cb5343e8506e97cd070e88b7a2782f5d0 guix-build-2ae76e6719bd/output/powerpc64-linux-gnu/bitcoin-2ae76e6719bd-powerpc64-linux-gnu.tar.gz 1466a4cdbe9dd70235fbd3a7a778a2ed450c375e5315cb968735f2b70eb0f4ce5b guix-build-2ae76e6719bd/output/powerpc64le-linux-gnu/SHA256SUMS.part 15f66d791f2b60058c278100742de7e70aff4ccc0a96fa2ab93362c688d6e46016 guix-build-2ae76e6719bd/output/powerpc64le-linux-gnu/bitcoin-2ae76e6719bd-powerpc64le-linux-gnu-debug.tar.gz 16e325260939f495090bcfffe294cb547195270560e163b5ebf81df04978a401d3 guix-build-2ae76e6719bd/output/powerpc64le-linux-gnu/bitcoin-2ae76e6719bd-powerpc64le-linux-gnu.tar.gz 17a81936bfa864bba2b76352b51c564fcb1ed31dc23de1bedef0bfc08a45cf2433 guix-build-2ae76e6719bd/output/riscv64-linux-gnu/SHA256SUMS.part 18fe0344f44e734dd4b0b3a98bdd19b521cdecf3e22877a3a64e0dd4929046d7a1 guix-build-2ae76e6719bd/output/riscv64-linux-gnu/bitcoin-2ae76e6719bd-riscv64-linux-gnu-debug.tar.gz 190980c60652df02c15037e851ec343d34be584ffc7cc7352bae7e8001e1626fd1 guix-build-2ae76e6719bd/output/riscv64-linux-gnu/bitcoin-2ae76e6719bd-riscv64-linux-gnu.tar.gz 2084978858bb6838ad7a057b13190b8b4c5abe04be789da1fd6f73bd1245808a73 guix-build-2ae76e6719bd/output/x86_64-apple-darwin/SHA256SUMS.part 211240441fab45abb954c97ef67dabe2db11fee02c25f6b26144daca32ccb33537 guix-build-2ae76e6719bd/output/x86_64-apple-darwin/bitcoin-2ae76e6719bd-x86_64-apple-darwin-unsigned.dmg 226b9a418c68b42f8be0fc15bed69545fe198d54a2da22204a86539dca1a891996 guix-build-2ae76e6719bd/output/x86_64-apple-darwin/bitcoin-2ae76e6719bd-x86_64-apple-darwin-unsigned.tar.gz 23f5f585ecc36c8c353f34b89c81548148d2f630118b5bd6f88774553cf56ccdc5 guix-build-2ae76e6719bd/output/x86_64-apple-darwin/bitcoin-2ae76e6719bd-x86_64-apple-darwin.tar.gz 244337965901a9671a100f60b61bb8cd9346413e233dd852b20517036cb18d1687 guix-build-2ae76e6719bd/output/x86_64-linux-gnu/SHA256SUMS.part 25c46eb6ab5e95a97c93cbdae51ea4ea350800d76f97dad87cb9801819c18c7b71 guix-build-2ae76e6719bd/output/x86_64-linux-gnu/bitcoin-2ae76e6719bd-x86_64-linux-gnu-debug.tar.gz 268f79f55f50cfbfc07cfa59f66300f4659846e58fc122d5dee368df414aacc51f guix-build-2ae76e6719bd/output/x86_64-linux-gnu/bitcoin-2ae76e6719bd-x86_64-linux-gnu.tar.gz 27c5126c368b6284ba9edcdee4545e7774fecb23d856f16a8cef828094a82b84a0 guix-build-2ae76e6719bd/output/x86_64-w64-mingw32/SHA256SUMS.part 2809d3db976e927b383e1ac50c84170b9ac867b98329871bcf4d20bed2cbbc1d3a guix-build-2ae76e6719bd/output/x86_64-w64-mingw32/bitcoin-2ae76e6719bd-win64-debug.zip 2931195a48a8803a56a59d1fd928cd7f7c09e21816d29055b2ddb2f52b116776d6 guix-build-2ae76e6719bd/output/x86_64-w64-mingw32/bitcoin-2ae76e6719bd-win64-setup-unsigned.exe 30b2ee371d61becf1735067ff429d5b52b367626090ed9bc23ca588a8104d3cb80 guix-build-2ae76e6719bd/output/x86_64-w64-mingw32/bitcoin-2ae76e6719bd-win64-unsigned.tar.gz 31e400f0fe881e40224823f36964a20c3482eab9145f2ab4a2d8ad1c0e3ce5977b guix-build-2ae76e6719bd/output/x86_64-w64-mingw32/bitcoin-2ae76e6719bd-win64.zip
arm64:
0ebcfc1f5c645f51c2f7acae8408f40c3df52ffd665bb773a3c28045d6f054d17 guix-build-2ae76e6719bd/output/aarch64-linux-gnu/SHA256SUMS.part 10c799abe1a0301fdaa618d2eab7142c664848e5080a1e88a78364b4e025d5ddd guix-build-2ae76e6719bd/output/aarch64-linux-gnu/bitcoin-2ae76e6719bd-aarch64-linux-gnu-debug.tar.gz 2b5c90dbc387a181424a03abc3161c594a98d66c7dbc7ce81d656fb7100f63393 guix-build-2ae76e6719bd/output/aarch64-linux-gnu/bitcoin-2ae76e6719bd-aarch64-linux-gnu.tar.gz 3e97e794133f6f4d3420ae898456cf6135a6869fe9fd22dd57711d4906e789ac5 guix-build-2ae76e6719bd/output/arm-linux-gnueabihf/SHA256SUMS.part 430be2679dfb3c4c9093299cd18e2d283c1159767e8830ac90391fd4dd869f033 guix-build-2ae76e6719bd/output/arm-linux-gnueabihf/bitcoin-2ae76e6719bd-arm-linux-gnueabihf-debug.tar.gz 5131e9ec0fcdc31ed3586a9a4909b8ce415813d1de4d87c78aab5126eb104855e guix-build-2ae76e6719bd/output/arm-linux-gnueabihf/bitcoin-2ae76e6719bd-arm-linux-gnueabihf.tar.gz 69d37de667417677aade6a00e545f2973c685440b1c319a85438781c713440442 guix-build-2ae76e6719bd/output/arm64-apple-darwin/SHA256SUMS.part 75bfcca644ae1fe834eabeb4684b0ac31ee102287387fa06e70de3b1a1f088834 guix-build-2ae76e6719bd/output/arm64-apple-darwin/bitcoin-2ae76e6719bd-arm64-apple-darwin-unsigned.dmg 8670ee693c9b29e3dc4318c6e29c29a49203fa2cf845003e8b797b2ed085077af guix-build-2ae76e6719bd/output/arm64-apple-darwin/bitcoin-2ae76e6719bd-arm64-apple-darwin-unsigned.tar.gz 98f9257e1b6dc9931b7c5f4b28ab40e111a825e2db55ec39dfcc2d8e2d0a3f5d2 guix-build-2ae76e6719bd/output/arm64-apple-darwin/bitcoin-2ae76e6719bd-arm64-apple-darwin.tar.gz 107eb928905086d0b765179a80ae9d7fa369a8453b5654c07c6f6f24156669dc66 guix-build-2ae76e6719bd/output/dist-archive/bitcoin-2ae76e6719bd.tar.gz 11dff214132304b59b2a1aa396a446c410c2e7cf43d0bcdc15480a8d9dcfe97ede guix-build-2ae76e6719bd/output/powerpc64-linux-gnu/SHA256SUMS.part 12c18d43eb59aaa3344a22c770792c4f0d67dab86a63012e8a6b28ee743fd20748 guix-build-2ae76e6719bd/output/powerpc64-linux-gnu/bitcoin-2ae76e6719bd-powerpc64-linux-gnu-debug.tar.gz 1395d39d375db11cb0a1918ed630e5cd3cb5343e8506e97cd070e88b7a2782f5d0 guix-build-2ae76e6719bd/output/powerpc64-linux-gnu/bitcoin-2ae76e6719bd-powerpc64-linux-gnu.tar.gz 1466a4cdbe9dd70235fbd3a7a778a2ed450c375e5315cb968735f2b70eb0f4ce5b guix-build-2ae76e6719bd/output/powerpc64le-linux-gnu/SHA256SUMS.part 15f66d791f2b60058c278100742de7e70aff4ccc0a96fa2ab93362c688d6e46016 guix-build-2ae76e6719bd/output/powerpc64le-linux-gnu/bitcoin-2ae76e6719bd-powerpc64le-linux-gnu-debug.tar.gz 16e325260939f495090bcfffe294cb547195270560e163b5ebf81df04978a401d3 guix-build-2ae76e6719bd/output/powerpc64le-linux-gnu/bitcoin-2ae76e6719bd-powerpc64le-linux-gnu.tar.gz 17a81936bfa864bba2b76352b51c564fcb1ed31dc23de1bedef0bfc08a45cf2433 guix-build-2ae76e6719bd/output/riscv64-linux-gnu/SHA256SUMS.part 18fe0344f44e734dd4b0b3a98bdd19b521cdecf3e22877a3a64e0dd4929046d7a1 guix-build-2ae76e6719bd/output/riscv64-linux-gnu/bitcoin-2ae76e6719bd-riscv64-linux-gnu-debug.tar.gz 190980c60652df02c15037e851ec343d34be584ffc7cc7352bae7e8001e1626fd1 guix-build-2ae76e6719bd/output/riscv64-linux-gnu/bitcoin-2ae76e6719bd-riscv64-linux-gnu.tar.gz 2084978858bb6838ad7a057b13190b8b4c5abe04be789da1fd6f73bd1245808a73 guix-build-2ae76e6719bd/output/x86_64-apple-darwin/SHA256SUMS.part 211240441fab45abb954c97ef67dabe2db11fee02c25f6b26144daca32ccb33537 guix-build-2ae76e6719bd/output/x86_64-apple-darwin/bitcoin-2ae76e6719bd-x86_64-apple-darwin-unsigned.dmg 226b9a418c68b42f8be0fc15bed69545fe198d54a2da22204a86539dca1a891996 guix-build-2ae76e6719bd/output/x86_64-apple-darwin/bitcoin-2ae76e6719bd-x86_64-apple-darwin-unsigned.tar.gz 23f5f585ecc36c8c353f34b89c81548148d2f630118b5bd6f88774553cf56ccdc5 guix-build-2ae76e6719bd/output/x86_64-apple-darwin/bitcoin-2ae76e6719bd-x86_64-apple-darwin.tar.gz 244337965901a9671a100f60b61bb8cd9346413e233dd852b20517036cb18d1687 guix-build-2ae76e6719bd/output/x86_64-linux-gnu/SHA256SUMS.part 25c46eb6ab5e95a97c93cbdae51ea4ea350800d76f97dad87cb9801819c18c7b71 guix-build-2ae76e6719bd/output/x86_64-linux-gnu/bitcoin-2ae76e6719bd-x86_64-linux-gnu-debug.tar.gz 268f79f55f50cfbfc07cfa59f66300f4659846e58fc122d5dee368df414aacc51f guix-build-2ae76e6719bd/output/x86_64-linux-gnu/bitcoin-2ae76e6719bd-x86_64-linux-gnu.tar.gz 27c5126c368b6284ba9edcdee4545e7774fecb23d856f16a8cef828094a82b84a0 guix-build-2ae76e6719bd/output/x86_64-w64-mingw32/SHA256SUMS.part 2809d3db976e927b383e1ac50c84170b9ac867b98329871bcf4d20bed2cbbc1d3a guix-build-2ae76e6719bd/output/x86_64-w64-mingw32/bitcoin-2ae76e6719bd-win64-debug.zip 2931195a48a8803a56a59d1fd928cd7f7c09e21816d29055b2ddb2f52b116776d6 guix-build-2ae76e6719bd/output/x86_64-w64-mingw32/bitcoin-2ae76e6719bd-win64-setup-unsigned.exe 30b2ee371d61becf1735067ff429d5b52b367626090ed9bc23ca588a8104d3cb80 guix-build-2ae76e6719bd/output/x86_64-w64-mingw32/bitcoin-2ae76e6719bd-win64-unsigned.tar.gz 31e400f0fe881e40224823f36964a20c3482eab9145f2ab4a2d8ad1c0e3ce5977b guix-build-2ae76e6719bd/output/x86_64-w64-mingw32/bitcoin-2ae76e6719bd-win64.zip```
fanquake force-pushed on Aug 19, 2022fanquake force-pushed on Sep 4, 2022hebasto commented at 9:34 pm on September 10, 2022: memberApproach ACK 80dfacbf81036a6fdbb033a8d7a169658a606751.fanquake force-pushed on Sep 13, 2022fanquake force-pushed on Sep 22, 2022Davidcalculus approvedbitcoin deleted a comment on Oct 27, 2022fanquake force-pushed on Oct 28, 2022fanquake force-pushed on Nov 25, 2022maflcko added the label DrahtBot Guix build requested on Nov 27, 2022DrahtBot commented at 12:47 pm on November 28, 2022: contributorGuix builds
DrahtBot removed the label DrahtBot Guix build requested on Nov 28, 2022fanquake force-pushed on Nov 30, 2022fanquake force-pushed on Dec 5, 2022fanquake commented at 2:11 pm on December 5, 2022: memberThe non-determinism when building on x86_64 and aarch64 has now been fixed. This required backporting 1 commit to our gcc 10: https://github.com/bitcoin/bitcoin/pull/25391/commits/ca17654f507f2f0ff51f7a2802113c45331a8447 and one change in depends.
Returning this to draft, as I’ll split out some of the prerequisistes. However general review, benchmarks, commentary would still be appreciated. I’ll add Guix build hashes to the PR description shortly.
fanquake marked this as a draft on Dec 5, 2022fanquake force-pushed on Dec 10, 2022TheCharlatan commented at 11:15 pm on January 27, 2023: contributorConcept ACK
The size benefits for the windows builds are similar to the linux builds described in #25542. These here are cross-compiled with depends: bitcoin-qt.exe size: 35.3MB bitcoin-qt.exe LTO size: 30.9MB
The configure execution time is annoyingly slow, on my machine a normal configure run for cross-compiling w64 clocks in at ~16s, while with LTO enabled it clocks 5min16s. The reason for this is the Qt plugin check. It links all the other detected Qt libraries with the static plugin library. I tried speeding this check up by optimizing the selection of linked libraries, but ended up with a not significantly faster solution.
Would it make sense to drop the LTO flag for this test instead?No.When building
bitcoind.exe
, I see the following warning:0/usr/share/mingw-w64/include/psdk_inc/_fd_types.h:21: note: array types have different bounds 1 21 | typedef struct fd_set 2 | 3 AR libtest_fuzz.a 4/usr/share/mingw-w64/include/psdk_inc/_fd_types.h:21: note: array types have different bounds 5 21 | typedef struct fd_set 6 | 7 CXXLD test/fuzz/fuzz.exe 8/usr/share/mingw-w64/include/psdk_inc/_fd_types.h:21: note: array types have different bounds 9 21 | typedef struct fd_set 10 | 11/usr/share/mingw-w64/include/psdk_inc/_fd_types.h:21: note: array types have different bounds 12 21 | typedef struct fd_set 13 |
There are also a bunch of :
0../depends/work/build/x86_64-w64-mingw32/miniupnpc/2.2.2-2b1a5331a74/miniupnpc.c: In function 'GetUPNPUrls': 1../depends/work/build/x86_64-w64-mingw32/miniupnpc/2.2.2-2b1a5331a74/miniupnpc.c:496:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
TheCharlatan commented at 7:04 am on February 10, 2023: contributorGuix build
00d49a7934d2ffd9d497b0e8f87e4ca90b1c516fba273fff963eb8baf0dddb73d guix-build-5f7a0db6480b/output/aarch64-linux-gnu/SHA256SUMS.part 11b8c738d978810a1ef6af91e9bee4a60368de1f1669420cd29c40e2f5d322a82 guix-build-5f7a0db6480b/output/aarch64-linux-gnu/bitcoin-5f7a0db6480b-aarch64-linux-gnu-debug.tar.gz 2dbcbbf4c037ee664d7e427725adfdff59e8c788d9da949baa653e363e07be82d guix-build-5f7a0db6480b/output/aarch64-linux-gnu/bitcoin-5f7a0db6480b-aarch64-linux-gnu.tar.gz 39b0f34c730aecd20aa03ad8d091a705b203e10d2b4f428b6fa9be22e8b783280 guix-build-5f7a0db6480b/output/arm-linux-gnueabihf/SHA256SUMS.part 47a1323bc756260e3f6212abaf3c55d0aac74ec2fefbb48e1ba0accb956b4e60c guix-build-5f7a0db6480b/output/arm-linux-gnueabihf/bitcoin-5f7a0db6480b-arm-linux-gnueabihf-debug.tar.gz 5d6905023f4c2071029e04ad331c76c2219c85029be152286344fd6364e1dff48 guix-build-5f7a0db6480b/output/arm-linux-gnueabihf/bitcoin-5f7a0db6480b-arm-linux-gnueabihf.tar.gz 68ba2ecb625e2cc178a3a6f0ccde390a71ee8dbc24df7d2f4affc386ca6b1b2cf guix-build-5f7a0db6480b/output/arm64-apple-darwin/SHA256SUMS.part 75e394962f842771dff13821140864ebf881bef4242d12bef06363d9ee5e41d89 guix-build-5f7a0db6480b/output/arm64-apple-darwin/bitcoin-5f7a0db6480b-arm64-apple-darwin-unsigned.dmg 8bb45f07390fb657bcfd9727782eb75056e49cc0796d0d24f51ef96f30ddfe269 guix-build-5f7a0db6480b/output/arm64-apple-darwin/bitcoin-5f7a0db6480b-arm64-apple-darwin-unsigned.tar.gz 9669451b707d585f056dc4cc498191890f7b581b03e344852c288026f23c8750b guix-build-5f7a0db6480b/output/arm64-apple-darwin/bitcoin-5f7a0db6480b-arm64-apple-darwin.tar.gz 10fe52699b528416963d52f9243a80113524ea536d54b8ca12224d8294e9cb98ed guix-build-5f7a0db6480b/output/dist-archive/bitcoin-5f7a0db6480b.tar.gz 1141e1f05fe67a827df4d9c4f829cbad2408d93ec6f8e13c7c32a41d226496ae21 guix-build-5f7a0db6480b/output/powerpc64-linux-gnu/SHA256SUMS.part 1200f92b29ba66ba77038a5cf9c45029b5883dce705262674defb0668fabd1dfa0 guix-build-5f7a0db6480b/output/powerpc64-linux-gnu/bitcoin-5f7a0db6480b-powerpc64-linux-gnu-debug.tar.gz 138dad945cc069c67549e6cbbf5a94812f21a786208c5c7a47d8f84756cc483bf2 guix-build-5f7a0db6480b/output/powerpc64-linux-gnu/bitcoin-5f7a0db6480b-powerpc64-linux-gnu.tar.gz 149767c0ea1823ef5475ea1eaf3127a594b7d67c6bc8b9cb4aab4e38a8a3f20f1e guix-build-5f7a0db6480b/output/powerpc64le-linux-gnu/SHA256SUMS.part 15ceb0da9200dc81e0e43c18ffe8987a4ae0ef465eb1968c1e69ccf9ff9bec015b guix-build-5f7a0db6480b/output/powerpc64le-linux-gnu/bitcoin-5f7a0db6480b-powerpc64le-linux-gnu-debug.tar.gz 165dffc49e0dd101ee691ceccd63a8efdec2e2189a572ed5254125774f7dfcc0a4 guix-build-5f7a0db6480b/output/powerpc64le-linux-gnu/bitcoin-5f7a0db6480b-powerpc64le-linux-gnu.tar.gz 174dbe3a6d6587b13ffedba2c88012a9febaef7039762788f8106f9f3776b8e071 guix-build-5f7a0db6480b/output/riscv64-linux-gnu/SHA256SUMS.part 18f36781a02f81a3822178857d644fb69d30d7e0c614dfda4d5d945e5b9aa69279 guix-build-5f7a0db6480b/output/riscv64-linux-gnu/bitcoin-5f7a0db6480b-riscv64-linux-gnu-debug.tar.gz 19c1a3c493f5c87ace3d5215c24a7a30dab1e517ad5acc1bf85c3651a7584074f9 guix-build-5f7a0db6480b/output/riscv64-linux-gnu/bitcoin-5f7a0db6480b-riscv64-linux-gnu.tar.gz 203bffcc0916498eb65656c41727b0d5247830513daa705678e4a47dc8bc1cbe6a guix-build-5f7a0db6480b/output/x86_64-apple-darwin/SHA256SUMS.part 2104b553a9886ba214be47d4063f8503abd281e1a15bdafed9b7f959d6d377c48f guix-build-5f7a0db6480b/output/x86_64-apple-darwin/bitcoin-5f7a0db6480b-x86_64-apple-darwin-unsigned.dmg 22c231d76279e95459eaf7913fca01ef3091645ebc892d30ffdbeb77976905dc2b guix-build-5f7a0db6480b/output/x86_64-apple-darwin/bitcoin-5f7a0db6480b-x86_64-apple-darwin-unsigned.tar.gz 239a7a65e4b733df36b19b12e808ab89b3f78f0535b378b631f6dd7b07d92eea21 guix-build-5f7a0db6480b/output/x86_64-apple-darwin/bitcoin-5f7a0db6480b-x86_64-apple-darwin.tar.gz 24f49b261c6461f647c9639ff9522f85420f7a237af2e580adf8814321be8e4d98 guix-build-5f7a0db6480b/output/x86_64-linux-gnu/SHA256SUMS.part 25d16134283a0e82274a54e747eaaf4173e9fab06e9cf3a255a4e0ce2a33575931 guix-build-5f7a0db6480b/output/x86_64-linux-gnu/bitcoin-5f7a0db6480b-x86_64-linux-gnu-debug.tar.gz 26ab9a2f28eccf8ddf355e0ffedc844b06c514b0bee2bf584dd4fb065951683156 guix-build-5f7a0db6480b/output/x86_64-linux-gnu/bitcoin-5f7a0db6480b-x86_64-linux-gnu.tar.gz 275dd91aef430c528db8779d3e6fa112eb8d00a72739b8cd61a1a08254c275bd5e guix-build-5f7a0db6480b/output/x86_64-w64-mingw32/SHA256SUMS.part 28c37bb94d1214e2dd12f6edbcf4d17810b6d934ca9f4248c6bb48c76e1837c6c8 guix-build-5f7a0db6480b/output/x86_64-w64-mingw32/bitcoin-5f7a0db6480b-win64-debug.zip 29bbb7c9e1ec260f8f1b562f76a90ea68ff6cea1b2c06e32c8d6e3ccea3aa6cde7 guix-build-5f7a0db6480b/output/x86_64-w64-mingw32/bitcoin-5f7a0db6480b-win64-setup-unsigned.exe 30c534e9629515740c66102326ec9727a33ec8a4e626a86d755ce76d28318b00b8 guix-build-5f7a0db6480b/output/x86_64-w64-mingw32/bitcoin-5f7a0db6480b-win64-unsigned.tar.gz 3121abc5257ddcf02e2e99269edc91678d57862e325939f24031b5e134190d7a18 guix-build-5f7a0db6480b/output/x86_64-w64-mingw32/bitcoin-5f7a0db6480b-win64.zip
fanquake force-pushed on Feb 17, 2023fanquake force-pushed on Feb 28, 2023DrahtBot added the label Needs rebase on Mar 15, 2023fanquake force-pushed on Mar 16, 2023DrahtBot removed the label Needs rebase on Mar 16, 2023fanquake referenced this in commit 43b54b015b on Mar 21, 2023fanquake referenced this in commit db3cf11257 on Mar 27, 2023fanquake referenced this in commit 4133c8104f on Mar 27, 2023fanquake referenced this in commit d3e17e0dbf on Mar 27, 2023fanquake force-pushed on Mar 27, 2023fanquake referenced this in commit 8e7179aa13 on Mar 29, 2023fanquake force-pushed on Mar 29, 2023sidhujag referenced this in commit f20eb50ab8 on Mar 29, 2023fanquake force-pushed on Apr 3, 2023fanquake force-pushed on Apr 18, 2023RandyMcMillan referenced this in commit 6a7899cdec on May 27, 2023DrahtBot added the label CI failed on May 30, 2023DrahtBot removed the label CI failed on May 31, 2023fanquake force-pushed on Jun 30, 2023maflcko added the label DrahtBot Guix build requested on Jul 1, 2023DrahtBot commented at 9:17 pm on July 1, 2023: contributorGuix builds
File commit 61d59fed74108f31eb4e9a2faa3f36422a37000e(master) commit 9a15c7ab4bf24589b214d534789eed54de764593(master and this pull) SHA256SUMS.part a6b2ee44327ca405...
94bc1c8688d50fea...
*-aarch64-linux-gnu-debug.tar.gz 40ef884ce67ad786...
17cef91ebd2085cc...
*-aarch64-linux-gnu.tar.gz b6f8e9a98458552b...
34a3a58050d74bd6...
*-arm-linux-gnueabihf-debug.tar.gz be22bd1ebc830f8e...
416eab083edf5383...
*-arm-linux-gnueabihf.tar.gz 590be8f5ca17f1bb...
30de659606fefdbf...
*-arm64-apple-darwin-unsigned.dmg 710731da14b6fe21...
*-arm64-apple-darwin-unsigned.tar.gz 7ebd635c7519befe...
*-arm64-apple-darwin.tar.gz c10c312284fe7970...
*-powerpc64-linux-gnu-debug.tar.gz 9942b2d1d324a8fc...
*-powerpc64-linux-gnu.tar.gz 0118e4087a61fa42...
*-powerpc64le-linux-gnu-debug.tar.gz 100f12c518c35265...
cc8280559975ab14...
*-powerpc64le-linux-gnu.tar.gz 06e05c656cdde1ff...
1460f4e7fcf1627c...
*-riscv64-linux-gnu-debug.tar.gz cb53ae399910dcda...
a7b216b43258ff7d...
*-riscv64-linux-gnu.tar.gz 28d5c359f63be877...
a039f3932a7de0e4...
*-x86_64-apple-darwin-unsigned.dmg 7d165193cbb55912...
*-x86_64-apple-darwin-unsigned.tar.gz 5790dfb85b79a750...
*-x86_64-apple-darwin.tar.gz bc00df1b21345154...
*-x86_64-linux-gnu-debug.tar.gz d762e63c01dd5496...
a1761b4050ac02a2...
*-x86_64-linux-gnu.tar.gz 07bbaf6a9ecfce12...
59a9e7d7d16854ac...
*.tar.gz 070ee3366f9b21e2...
d3a419c4ce412f64...
guix_build.log c8c9ac2cc54b04d7...
fdd171c9f6473a43...
guix_build.log.diff a992b6d1e3f95d14...
DrahtBot removed the label DrahtBot Guix build requested on Jul 1, 2023fanquake force-pushed on Aug 14, 2023DrahtBot added the label Needs rebase on Aug 22, 2023fanquake force-pushed on Aug 23, 2023DrahtBot removed the label Needs rebase on Aug 23, 2023DrahtBot added the label Needs rebase on Aug 24, 2023fanquake force-pushed on Aug 24, 2023DrahtBot removed the label Needs rebase on Aug 24, 2023fanquake force-pushed on Aug 26, 2023DrahtBot added the label CI failed on Aug 26, 2023fanquake force-pushed on Aug 27, 2023DrahtBot removed the label CI failed on Aug 27, 2023maflcko added the label DrahtBot Guix build requested on Aug 27, 2023DrahtBot commented at 9:18 am on August 28, 2023: contributorGuix builds
DrahtBot removed the label DrahtBot Guix build requested on Aug 28, 2023fanquake force-pushed on Aug 30, 2023fanquake force-pushed on Sep 5, 2023fanquake force-pushed on Sep 7, 2023DrahtBot added the label Needs rebase on Sep 20, 2023fanquake force-pushed on Sep 20, 2023theuni commented at 2:12 pm on September 20, 2023: memberI have no idea if this will help, but this should keep the dtor in a single compilation unit.
0diff -ruN qtbase-everywhere-src-5.15.2/src/widgets/accessible/simplewidgets.cpp qtbase-everywhere-src-5.15.2.new/src/widgets/accessible/simplewidgets.cpp 1--- qtbase-everywhere-src-5.15.2/src/widgets/accessible/simplewidgets.cpp 2020-10-27 08:02:11.000000000 +0000 2+++ qtbase-everywhere-src-5.15.2.new/src/widgets/accessible/simplewidgets.cpp 2023-09-20 13:58:14.878755026 +0000 3@@ -678,6 +678,8 @@ 4 \ingroup accessibility 5 */ 6 7+QAccessibleLineEdit::~QAccessibleLineEdit(){}; 8+ 9 /*! 10 Constructs a QAccessibleLineEdit object for \a w. 11 \a name is propagated to the QAccessibleWidget constructor. 12diff -ruN qtbase-everywhere-src-5.15.2/src/widgets/accessible/simplewidgets_p.h qtbase-everywhere-src-5.15.2.new/src/widgets/accessible/simplewidgets_p.h 13--- qtbase-everywhere-src-5.15.2/src/widgets/accessible/simplewidgets_p.h 2020-10-27 08:02:11.000000000 +0000 14+++ qtbase-everywhere-src-5.15.2.new/src/widgets/accessible/simplewidgets_p.h 2023-09-20 13:52:10.467865415 +0000 15@@ -154,7 +154,7 @@ 16 { 17 public: 18 explicit QAccessibleLineEdit(QWidget *o, const QString &name = QString()); 19- 20+ ~QAccessibleLineEdit(); 21 QString text(QAccessible::Text t) const override; 22 void setText(QAccessible::Text t, const QString &text) override; 23 QAccessible::State state() const override;
DrahtBot removed the label Needs rebase on Sep 20, 2023fanquake force-pushed on Sep 26, 2023fanquake added the label DrahtBot Guix build requested on Sep 26, 2023fanquake commented at 9:30 am on September 26, 2023: memberI have no idea if this will help,
Looks like it’s good enough for working Windows builds. Turned the change into a depends patch, and dropped
--allow-multiple-definition
. I’ll PR this separately, as we can fix theLTO=1
case for Windows, before turning this on for releases.DrahtBot commented at 2:59 am on September 27, 2023: contributorGuix builds (on x86_64)
File commit dcfbf3c2107c3cb9d343ebfa0eee78278dea8d66(master) commit 3c2fbf127095274e441e39edaef0694d08649e2b(master and this pull) SHA256SUMS.part 3463192d302e5e7d...
111e79646187a18f...
*-aarch64-linux-gnu-debug.tar.gz 8f13fa75951fbb81...
e243fc1c66e6b085...
*-aarch64-linux-gnu.tar.gz 19d03941f96ec32e...
03ecbe20dbf342b9...
*-arm-linux-gnueabihf-debug.tar.gz 8fd162ef67ee4a82...
2667153e882200b5...
*-arm-linux-gnueabihf.tar.gz e83f5032b7023e78...
c57d21371053b71a...
*-arm64-apple-darwin-unsigned.tar.gz f6043c9708640d0f...
*-arm64-apple-darwin-unsigned.zip d3f9d8f9920f43bc...
*-arm64-apple-darwin.tar.gz 9239c612e938799b...
*-powerpc64-linux-gnu-debug.tar.gz 76a07705a95e8207...
a5b0757e4c257160...
*-powerpc64-linux-gnu.tar.gz 56ff6d0c2e6bfed3...
7d420acf58019984...
*-powerpc64le-linux-gnu-debug.tar.gz b3048dd299324b19...
9bdfe0df449f6777...
*-powerpc64le-linux-gnu.tar.gz 686240c06c306afc...
25c85396bf8f7a18...
*-riscv64-linux-gnu-debug.tar.gz 83e360e956ce9a80...
cdf4af3356e8cb91...
*-riscv64-linux-gnu.tar.gz ebf0baee66d26688...
cad7b8dadcb27154...
*-x86_64-apple-darwin-unsigned.tar.gz c6b0061e9d466aad...
*-x86_64-apple-darwin-unsigned.zip f9cbd11c2b035f15...
*-x86_64-apple-darwin.tar.gz 36f91b5cc6aba2d2...
*-x86_64-linux-gnu-debug.tar.gz 5a88277d2c0ff08d...
4eb303948ccae829...
*-x86_64-linux-gnu.tar.gz ae946eede28d7eb6...
9d7e3ee4298e53d3...
*.tar.gz 32f00918c5b365a0...
25a79b5e85d5a60c...
guix_build.log ddd5298daf43215c...
19c72938b5ffc163...
guix_build.log.diff f2a746ee342064d9...
DrahtBot removed the label DrahtBot Guix build requested on Sep 27, 2023maflcko commented at 7:05 pm on October 1, 2023: memberIs this safe to do in light of https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105469 ?fanquake force-pushed on Oct 3, 2023maflcko added the label DrahtBot Guix build requested on Oct 3, 2023maflcko removed the label DrahtBot Guix build requested on Oct 3, 2023DrahtBot added the label Needs rebase on Oct 3, 2023fanquake force-pushed on Oct 3, 2023DrahtBot removed the label Needs rebase on Oct 3, 2023fanquake referenced this in commit 634b68f0dc on Oct 6, 2023fanquake force-pushed on Oct 6, 2023Frank-GER referenced this in commit b09938b4f0 on Oct 13, 2023DrahtBot added the label Needs rebase on Nov 13, 2023fanquake force-pushed on Nov 13, 2023DrahtBot removed the label Needs rebase on Nov 13, 2023theuni commented at 7:36 pm on November 13, 2023: memberAny idea wherein6addr_any
is coming from? Seems fine, just curious.fanquake force-pushed on Nov 14, 2023fanquake commented at 10:13 am on November 15, 2023: memberAny idea where in6addr_any is coming from? Seems fine, just curious.
I can’t remember exactly, but it looks like this is actually no-longer required. Did a new round of builds with this branch, and it dropped from the script.
fanquake force-pushed on Nov 15, 2023fanquake force-pushed on Nov 30, 2023fanquake force-pushed on Dec 22, 2023hebasto commented at 12:37 pm on January 6, 2024: memberDrahtBot added the label CI failed on Jan 14, 2024PastaPastaPasta referenced this in commit be1aba901b on Jan 14, 2024fanquake force-pushed on Jan 16, 2024PastaPastaPasta referenced this in commit 7a5761ece6 on Jan 16, 2024DrahtBot removed the label CI failed on Jan 16, 2024PastaPastaPasta referenced this in commit 219a042620 on Jan 19, 2024PastaPastaPasta referenced this in commit 196ea08b9a on Jan 24, 2024PastaPastaPasta referenced this in commit 74bc4461a6 on Jan 28, 2024Fabcien referenced this in commit 2948a1a5e7 on Jan 31, 2024PastaPastaPasta referenced this in commit 69737c0073 on Feb 7, 2024DrahtBot added the label Needs rebase on Mar 14, 2024fanquake force-pushed on Mar 14, 2024DrahtBot removed the label Needs rebase on Mar 14, 2024fanquake force-pushed on Apr 17, 2024fanquake force-pushed on May 1, 2024fanquake force-pushed on May 16, 2024fanquake force-pushed on May 22, 2024fanquake marked this as ready for review on May 22, 2024fanquake force-pushed on May 29, 2024fanquake force-pushed on Jun 4, 2024maflcko commented at 10:02 am on June 4, 2024: memberIs this safe to do in light of https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105469 ?
Also https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113359 (in combination with #29881)
Would be nice to extend the motivation (pull request description) a bit about the benefits and risks.
DrahtBot commented at 4:54 pm on June 11, 2024: contributor🐙 This pull request conflicts with the target branch and needs rebase.
DrahtBot added the label Needs rebase on Jun 11, 2024fanquake force-pushed on Aug 9, 2024fanquake commented at 3:25 pm on August 9, 2024: memberWould be nice to extend the motivation (pull request description) a bit about the benefits and risks.
Thanks. Drafted for the moment, but going to come back here soon with much more information.
fanquake marked this as a draft on Aug 9, 2024fanquake removed the label Needs rebase on Aug 9, 2024scripts: update exports for LTO
```bash bitcoind: export of symbol in6addr_any not allowed! bitcoind: failed EXPORTED_SYMBOLS test/test_bitcoin: export of symbol in6addr_any not allowed! test/test_bitcoin: failed EXPORTED_SYMBOLS ``` Also new exports for bitcoin-qt.
guix: build depends with LTO=1 and -flto 8ad4d5964bfanquake force-pushed on Aug 28, 2024DrahtBot added the label CI failed on Sep 7, 2024DrahtBot removed the label CI failed on Sep 12, 2024fanquake commented at 11:17 am on October 15, 2024: memberGoing to come back to this after static builds.fanquake closed this on Oct 15, 2024
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: 2024-12-04 06:12 UTC
More mirrored repositories can be found on mirror.b10c.me