New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
depends: compile FastFixedDtoa with -O1 to fix cross-arch reproducibility for arm32 #25643
Conversation
This fixes a non-determinism issue in the asm produced for this function when cross-compiling on x86_64 and aarch64 for the arm-linux-gnueabihf HOST. Related to bitcoin#21194.
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, this pull request conflicts with the following ones:
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. |
Guix builds:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK c32fa85
GUIX hashes: x86:
arm64:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK c32fa85
nice fix :)
ACK c32fa85 x86_64:
arm64:
|
…ross-arch reproducibility for arm32 c32fa85 depends: modify FastFixedDtoa optimisation flags (fanquake) Pull request description: This fixes a non-determinism issue in the asm produced for this function when cross-compiling on x86_64 and aarch64 for the arm-linux-gnueabihf HOST. Related to bitcoin#21194. Alternative to bitcoin#25636. Initial discussion in bitcoin#24615 (comment). Guix Build (x86_64): ```bash 28ae0ec2874ead334edd1c5dc509344379d82f7058b649c9076992defd7190d7 guix-build-c32fa85909dd/output/arm-linux-gnueabihf/SHA256SUMS.part 48d34073b029c4f62c8e1bd906533610228d5ca0bb5eefea6010dfa7372ba067 guix-build-c32fa85909dd/output/arm-linux-gnueabihf/bitcoin-c32fa85909dd-arm-linux-gnueabihf-debug.tar.gz 850d6e9859e88bcb93ed586bdb0c0bc95a44249d6a0ec1b1d13125cb9dd56413 guix-build-c32fa85909dd/output/arm-linux-gnueabihf/bitcoin-c32fa85909dd-arm-linux-gnueabihf.tar.gz b8bb092b1307684ea4b53d810ac110ec14f29eeab8028d924d1cac7418009b14 guix-build-c32fa85909dd/output/dist-archive/bitcoin-c32fa85909dd.tar.gz ``` Guix Build (arm64): ```bash 28ae0ec2874ead334edd1c5dc509344379d82f7058b649c9076992defd7190d7 guix-build-c32fa85909dd/output/arm-linux-gnueabihf/SHA256SUMS.part 48d34073b029c4f62c8e1bd906533610228d5ca0bb5eefea6010dfa7372ba067 guix-build-c32fa85909dd/output/arm-linux-gnueabihf/bitcoin-c32fa85909dd-arm-linux-gnueabihf-debug.tar.gz 850d6e9859e88bcb93ed586bdb0c0bc95a44249d6a0ec1b1d13125cb9dd56413 guix-build-c32fa85909dd/output/arm-linux-gnueabihf/bitcoin-c32fa85909dd-arm-linux-gnueabihf.tar.gz b8bb092b1307684ea4b53d810ac110ec14f29eeab8028d924d1cac7418009b14 guix-build-c32fa85909dd/output/dist-archive/bitcoin-c32fa85909dd.tar.gz ``` ACKs for top commit: achow101: ACK c32fa85 hebasto: ACK c32fa85 jarolrod: ACK c32fa85 Tree-SHA512: 137d76274b1421247f43e5f040b4b5c42473f94d734498c73ab40e580c47dfecbbf11f1a69c15a87d805d4b8e9ef1fd62cc1b69c0f1614c62ff3cba98b1733e8
… reproducibility for arm32
… reproducibility for arm32
Summary: This brings us to the same set of patches as the current tip of the Core repository, minus the ones for architectures we don't support (mainly android and arm64 MacOS) > build, qt: Hardcode last modified timestamp in Qt RCC > > This change allows the already built qt package to be reused even with > the SOURCE_DATE_EPOCH variable set, e.g., for Guix builds. > build: patch around qt duplicate symbol issue > > This is currently causing the same failure in two different PRs: > ```bash > duplicate symbol 'lcQpaFonts()' in: > /tmp/cirrus-ci-build/depends/x86_64-apple-darwin/lib/libQt5ThemeSupport.a(qgenericunixthemes.o) > /tmp/cirrus-ci-build/depends/x86_64-apple-darwin/lib/libQt5FontDatabaseSupport.a(qfontengine_coretext.o) > ld: 1 duplicate symbol for architecture x86_64 > ``` > > ```bash > x86_64-apple-darwin-ld: error: duplicate symbol: __Z10lcQpaFontsv > >>> defined in /tmp/cirrus-ci-build/depends/x86_64-apple-darwin/lib/libQt5ThemeSupport.a(qgenericunixthemes.o) > >>> defined in /tmp/cirrus-ci-build/depends/x86_64-apple-darwin/lib/libQt5FontDatabaseSupport.a(qfontengine_coretext.o) > ``` > > Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> > > depends: modify FastFixedDtoa optimisation flags > > This fixes a non-determinism issue in the asm produced for > this function when cross-compiling on x86_64 and aarch64 for > the arm-linux-gnueabihf HOST. > > Related to #21194. > guix: More thoroughly control native toolchain This patch has been updated (line numbers in the diff only) to account for a Qt version bump (D13918) This is a backport of [[bitcoin/bitcoin#23862 | core#23862]], [[bitcoin/bitcoin#24722 | core#24722]] and [[bitcoin/bitcoin#25643 | core#25643]] and bitcoin/bitcoin@c1ae726 Depends on D13926 Test Plan: local crossbuild of qt, gitian builds, guix build Reviewers: #bitcoin_abc, Fabien Reviewed By: #bitcoin_abc, Fabien Differential Revision: https://reviews.bitcoinabc.org/D13927
… reproducibility for arm32
… reproducibility for arm32
… reproducibility for arm32
… reproducibility for arm32
… reproducibility for arm32
… reproducibility for arm32
… reproducibility for arm32
… reproducibility for arm32
… reproducibility for arm32
… reproducibility for arm32
… reproducibility for arm32
backport: merge bitcoin#25643, bitcoin#23583, bitcoin#23618, bitcoin#23603, bitcoin#23817, bitcoin#24520, bitcoin#24508, bitcoin#25639, bitcoin#26018, bitcoin#25437, bitcoin#25484, bitcoin#23585, bitcoin#24549, bitcoin#24733, bitcoin#21991, bitcoin#22526, bitcoin#25633, bitcoin#24597, bitcoin#24955, bitcoin#25099, bitcoin#24552, bitcoin#21851, bitcoin#25389, bitcoin#25357, partial bitcoin#22318 (guix backports: part 3)
This fixes a non-determinism issue in the asm produced for
this function when cross-compiling on x86_64 and aarch64 for
the arm-linux-gnueabihf HOST.
Related to #21194. Alternative to #25636. Initial discussion in #24615 (comment).
Guix Build (x86_64):
Guix Build (arm64):