Skip to content

Conversation

achow101
Copy link
Member

@achow101 achow101 commented Mar 18, 2022

The non-reproducibility observed in binaries built on different architectures appears to come from guix store paths being present in the debug info. These guix store paths appear to differ depending on the architecture. These paths can be mapped to /usr using the GCC option -ffile-prefix-map. As the paths will change as the package versions change, we use find to search for all guix store paths to build a CFLAGS that has all guix store paths mapped to /usr.

Some glibc code ends up in our binaries as well and these also contain debug info with guix store paths. So glibc is also patched to map guix store paths to /usr

Alternative to #24569

@achow101 achow101 changed the title guix: Map guix store prefixes to /usr for cross-architecture reproducibility guix: Map guix store prefixes to /usr for cross-architecture reproducibility of linux binaries Mar 18, 2022
@achow101 achow101 force-pushed the guix-cross-arch-repro branch from 1f736f3 to 91b6733 Compare March 18, 2022 23:58
@achow101
Copy link
Member Author

achow101 commented Mar 19, 2022

Guix build on x86_64:

fdc55bf1ede30611d4c75ef19ff535fb9162e9c54d99df30198edfd392223ebe  guix-build-91b6733ed03f/output/arm-linux-gnueabihf/SHA256SUMS.part
a31aabef6d3fd509ce8b3ba995af4b06e13c164b1b0992a7cd3d9263d32d0283  guix-build-91b6733ed03f/output/arm-linux-gnueabihf/bitcoin-91b6733ed03f-arm-linux-gnueabihf-debug.tar.gz
c76e986a30f2c99dfc90d606815ecae337e81834ab5975870f020636ac1f82a9  guix-build-91b6733ed03f/output/arm-linux-gnueabihf/bitcoin-91b6733ed03f-arm-linux-gnueabihf.tar.gz
c1cc9e9079162c3dacdc8de4a005675db76d0dfc3d8e053ce2d9d8a89bef37ed  guix-build-91b6733ed03f/output/arm64-apple-darwin/SHA256SUMS.part
a7e2e1e18a976e0966a8158d3516810b63faa240ccf1fe61d51fd82ba69d988f  guix-build-91b6733ed03f/output/arm64-apple-darwin/bitcoin-91b6733ed03f-arm64-apple-darwin-unsigned.dmg
8fc280749c43b7a3a34cdf45a79eaff7c5106962dd7d50040e07c2fbbaf71b86  guix-build-91b6733ed03f/output/arm64-apple-darwin/bitcoin-91b6733ed03f-arm64-apple-darwin-unsigned.tar.gz
43782d061604ccc5f431e28e2e164dcdfac3356dea745eba57fb0ad19668b88a  guix-build-91b6733ed03f/output/arm64-apple-darwin/bitcoin-91b6733ed03f-arm64-apple-darwin.tar.gz
d344648aaa671b0eaf36ed2d28906e55c055c4a63c991545d03183d423a54f77  guix-build-91b6733ed03f/output/dist-archive/bitcoin-91b6733ed03f.tar.gz
32449178c7f4d6e547022b7aafe30bbec664900035c9c08c9ae2af1aa463501a  guix-build-91b6733ed03f/output/powerpc64-linux-gnu/SHA256SUMS.part
5844fc07429c9317c55587b48220e808f1250219e0c19cb84cca6910c39996e0  guix-build-91b6733ed03f/output/powerpc64-linux-gnu/bitcoin-91b6733ed03f-powerpc64-linux-gnu-debug.tar.gz
4238f7d71f6ca51e2a6b1b2a5bb752c1d66caee7bee46e400c744cf5d821a59a  guix-build-91b6733ed03f/output/powerpc64-linux-gnu/bitcoin-91b6733ed03f-powerpc64-linux-gnu.tar.gz
f30de69ed187d8890c5569ebdc9a129d4d7f77f0f73a60c13e9f132845712903  guix-build-91b6733ed03f/output/powerpc64le-linux-gnu/SHA256SUMS.part
b1070b70a8560f2602d8fdaba7acd4bf885897f09ab58d967bcde41ef8991763  guix-build-91b6733ed03f/output/powerpc64le-linux-gnu/bitcoin-91b6733ed03f-powerpc64le-linux-gnu-debug.tar.gz
cb826e063dbaf69ca55108b3454d206e0f0be5e9996c2709f097feedbaf78a7f  guix-build-91b6733ed03f/output/powerpc64le-linux-gnu/bitcoin-91b6733ed03f-powerpc64le-linux-gnu.tar.gz
2c13018dba3f888f6e53beafe01442a7a23f15534afd5a30176ee222e311d16e  guix-build-91b6733ed03f/output/riscv64-linux-gnu/SHA256SUMS.part
b3dd6b43e0c4a5fe16b75cb8cd9c8b726986cad1f4b364a031691a5401d77f7d  guix-build-91b6733ed03f/output/riscv64-linux-gnu/bitcoin-91b6733ed03f-riscv64-linux-gnu-debug.tar.gz
cb122b0a9c1efae3d888bd5fdf7638372124fe4d9ccaeca3fef2f9506ce2b2a7  guix-build-91b6733ed03f/output/riscv64-linux-gnu/bitcoin-91b6733ed03f-riscv64-linux-gnu.tar.gz
438a853d9d846e07c2924f39987bc75fb60bf502d2f473771f2d1568db54b82f  guix-build-91b6733ed03f/output/x86_64-apple-darwin/SHA256SUMS.part
e7b6dc1795acd4bd6d31bde196b85c8aba0646080875a87982ff902802e3f9fa  guix-build-91b6733ed03f/output/x86_64-apple-darwin/bitcoin-91b6733ed03f-x86_64-apple-darwin-unsigned.dmg
041735e9859e38737572fcd071ab02f84bc694323039989e25a45f68d5973578  guix-build-91b6733ed03f/output/x86_64-apple-darwin/bitcoin-91b6733ed03f-x86_64-apple-darwin-unsigned.tar.gz
c219e39e7adc86a30b05847d082b34b03557b018fc3cce052eb0b3bdfc43a225  guix-build-91b6733ed03f/output/x86_64-apple-darwin/bitcoin-91b6733ed03f-x86_64-apple-darwin.tar.gz
bddc6e8bf90fca57f9ec992fa7a04c0959df7077b784af1609f6aaa4879360b0  guix-build-91b6733ed03f/output/x86_64-linux-gnu/SHA256SUMS.part
477cc5551b75d7079f52a8f0cb24a148c48a7599fb85c257554dc87a29cb114e  guix-build-91b6733ed03f/output/x86_64-linux-gnu/bitcoin-91b6733ed03f-x86_64-linux-gnu-debug.tar.gz
51beadea5cb97dfa7fc10be0017635909b9416dd0bbfef2ad0ac69bd7e24f38f  guix-build-91b6733ed03f/output/x86_64-linux-gnu/bitcoin-91b6733ed03f-x86_64-linux-gnu.tar.gz
0a2cb2ae9a268886b80a0a38e6604ed0cb21b9868ab2c750ca6e461521694414  guix-build-91b6733ed03f/output/x86_64-w64-mingw32/SHA256SUMS.part
fc9180da78e174430653d6cc96a241871cbfc19789f79198940d52f8a80a1223  guix-build-91b6733ed03f/output/x86_64-w64-mingw32/bitcoin-91b6733ed03f-win64-debug.zip
9944cf8d62f004efff35d2f5ff5f02d61d3503057bacf12665b304b48ea7b5bb  guix-build-91b6733ed03f/output/x86_64-w64-mingw32/bitcoin-91b6733ed03f-win64-setup-unsigned.exe
31b253a6f11bba0f8606d3f01308facd4693c911f6ebc19ca0d89b8158d15e49  guix-build-91b6733ed03f/output/x86_64-w64-mingw32/bitcoin-91b6733ed03f-win64-unsigned.tar.gz
02c4539afb9bffe03f49399478f839a181da2174ec3678dfb4cdfc26571742e2  guix-build-91b6733ed03f/output/x86_64-w64-mingw32/bitcoin-91b6733ed03f-win64.zip

Guix build on arm64:

0824e65036b0e3bb385e48ce8f5a64c7a99dd31a79fc5f0c2d8db0edb8f35440  guix-build-91b6733ed03f/output/arm-linux-gnueabihf/SHA256SUMS.part
a31aabef6d3fd509ce8b3ba995af4b06e13c164b1b0992a7cd3d9263d32d0283  guix-build-91b6733ed03f/output/arm-linux-gnueabihf/bitcoin-91b6733ed03f-arm-linux-gnueabihf-debug.tar.gz
676da045ac16eea3ea5132394a51954d7b5efc6c6b4a78e67a910e96fc1585fa  guix-build-91b6733ed03f/output/arm-linux-gnueabihf/bitcoin-91b6733ed03f-arm-linux-gnueabihf.tar.gz
ad4f767500fe7c7f261b177005dada3a73fb7bf6518f6abd1219b4a6bdeb73e3  guix-build-91b6733ed03f/output/arm64-apple-darwin/SHA256SUMS.part
9684602074661bbab2738cdb755870331bf45335b2b9e740546d9df256305eb6  guix-build-91b6733ed03f/output/arm64-apple-darwin/bitcoin-91b6733ed03f-arm64-apple-darwin-unsigned.dmg
5b4e2df6c62618758578e392df3518b71ecd0ab1a9d908b1838ad6b8e3c9c6d5  guix-build-91b6733ed03f/output/arm64-apple-darwin/bitcoin-91b6733ed03f-arm64-apple-darwin-unsigned.tar.gz
589b188b670ec7bd4f2734fc91d000505aaa8111507138262a6375083c6d6a69  guix-build-91b6733ed03f/output/arm64-apple-darwin/bitcoin-91b6733ed03f-arm64-apple-darwin.tar.gz
d344648aaa671b0eaf36ed2d28906e55c055c4a63c991545d03183d423a54f77  guix-build-91b6733ed03f/output/dist-archive/bitcoin-91b6733ed03f.tar.gz
32449178c7f4d6e547022b7aafe30bbec664900035c9c08c9ae2af1aa463501a  guix-build-91b6733ed03f/output/powerpc64-linux-gnu/SHA256SUMS.part
5844fc07429c9317c55587b48220e808f1250219e0c19cb84cca6910c39996e0  guix-build-91b6733ed03f/output/powerpc64-linux-gnu/bitcoin-91b6733ed03f-powerpc64-linux-gnu-debug.tar.gz
4238f7d71f6ca51e2a6b1b2a5bb752c1d66caee7bee46e400c744cf5d821a59a  guix-build-91b6733ed03f/output/powerpc64-linux-gnu/bitcoin-91b6733ed03f-powerpc64-linux-gnu.tar.gz
f30de69ed187d8890c5569ebdc9a129d4d7f77f0f73a60c13e9f132845712903  guix-build-91b6733ed03f/output/powerpc64le-linux-gnu/SHA256SUMS.part
b1070b70a8560f2602d8fdaba7acd4bf885897f09ab58d967bcde41ef8991763  guix-build-91b6733ed03f/output/powerpc64le-linux-gnu/bitcoin-91b6733ed03f-powerpc64le-linux-gnu-debug.tar.gz
cb826e063dbaf69ca55108b3454d206e0f0be5e9996c2709f097feedbaf78a7f  guix-build-91b6733ed03f/output/powerpc64le-linux-gnu/bitcoin-91b6733ed03f-powerpc64le-linux-gnu.tar.gz
36d2772c7af61c4c84c7961987ad0bbaad0b4390a390b0e77e99dde1ce3d4b9d  guix-build-91b6733ed03f/output/riscv64-linux-gnu/SHA256SUMS.part
4d689ea1131a1a341892aaf098cf115816891510b40a17c5be27e21ce4a18e61  guix-build-91b6733ed03f/output/riscv64-linux-gnu/bitcoin-91b6733ed03f-riscv64-linux-gnu-debug.tar.gz
478d420ad608e94b875cee653698e44d6e85e0020fc09ee6fbc785373d46d723  guix-build-91b6733ed03f/output/riscv64-linux-gnu/bitcoin-91b6733ed03f-riscv64-linux-gnu.tar.gz
5e5a9add3d0db7d35311ea0fa0a2838a35dea6bcab4f1bed3bcadbacedf84a40  guix-build-91b6733ed03f/output/x86_64-apple-darwin/SHA256SUMS.part
e7b6dc1795acd4bd6d31bde196b85c8aba0646080875a87982ff902802e3f9fa  guix-build-91b6733ed03f/output/x86_64-apple-darwin/bitcoin-91b6733ed03f-x86_64-apple-darwin-unsigned.dmg
9912c11746de9ef209eae5eb96c4a454c8aed72a5814f8cdb16fa6ed38a5ec34  guix-build-91b6733ed03f/output/x86_64-apple-darwin/bitcoin-91b6733ed03f-x86_64-apple-darwin-unsigned.tar.gz
c219e39e7adc86a30b05847d082b34b03557b018fc3cce052eb0b3bdfc43a225  guix-build-91b6733ed03f/output/x86_64-apple-darwin/bitcoin-91b6733ed03f-x86_64-apple-darwin.tar.gz
bddc6e8bf90fca57f9ec992fa7a04c0959df7077b784af1609f6aaa4879360b0  guix-build-91b6733ed03f/output/x86_64-linux-gnu/SHA256SUMS.part
477cc5551b75d7079f52a8f0cb24a148c48a7599fb85c257554dc87a29cb114e  guix-build-91b6733ed03f/output/x86_64-linux-gnu/bitcoin-91b6733ed03f-x86_64-linux-gnu-debug.tar.gz
51beadea5cb97dfa7fc10be0017635909b9416dd0bbfef2ad0ac69bd7e24f38f  guix-build-91b6733ed03f/output/x86_64-linux-gnu/bitcoin-91b6733ed03f-x86_64-linux-gnu.tar.gz
f9d36fcc292454fa99c4218d8e9ca7ff9f5dfd2327fd29595312f83d47619160  guix-build-91b6733ed03f/output/x86_64-w64-mingw32/SHA256SUMS.part
56f56f817d6e70008fabdf42e21b8359ad27b604a74ec5682a07945ff9378c08  guix-build-91b6733ed03f/output/x86_64-w64-mingw32/bitcoin-91b6733ed03f-win64-debug.zip
9944cf8d62f004efff35d2f5ff5f02d61d3503057bacf12665b304b48ea7b5bb  guix-build-91b6733ed03f/output/x86_64-w64-mingw32/bitcoin-91b6733ed03f-win64-setup-unsigned.exe
31b253a6f11bba0f8606d3f01308facd4693c911f6ebc19ca0d89b8158d15e49  guix-build-91b6733ed03f/output/x86_64-w64-mingw32/bitcoin-91b6733ed03f-win64-unsigned.tar.gz
800c545636a126b1a0ba90e505c89569bfd89a4533a6aa655a35f8cdf59ae08e  guix-build-91b6733ed03f/output/x86_64-w64-mingw32/bitcoin-91b6733ed03f-win64.zip

Similar issues with riscv, but I'm not sure where to patch to resolve this:

--- output-arm64/riscv64-linux-gnu/bitcoin-91b6733ed03f/bin/bitcoin-cli
+++ output-x86_64/riscv64-linux-gnu/bitcoin-91b6733ed03f/bin/bitcoin-cli
├── readelf --wide --dynamic {}
│ @@ -2,15 +2,15 @@
│  Dynamic section at offset 0x19eda0 contains 34 entries:
│    Tag        Type                         Name/Value
│   0x0000000000000001 (NEEDED)             Shared library: [libpthread.so.0]
│   0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
│   0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]
│   0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
│   0x0000000000000001 (NEEDED)             Shared library: [ld-linux-riscv64-lp64d.so.1]
│ - 0x000000000000001d (RUNPATH)            Library runpath: [/gnu/store/mqbnph0ip4q87izvidhbxkah6pyad06d-gcc-cross-riscv64-linux-gnu-10.3.0-lib/riscv64-linux-gnu/lib]
│ + 0x000000000000001d (RUNPATH)            Library runpath: [/gnu/store/6vr7a5dkjz1rfypdk71mfvabdvvdfmk5-gcc-cross-riscv64-linux-gnu-10.3.0-lib/riscv64-linux-gnu/lib]
│   0x0000000000000020 (PREINIT_ARRAY)      0x196468
│   0x0000000000000021 (PREINIT_ARRAYSZ)    8 (bytes)
│   0x0000000000000019 (INIT_ARRAY)         0x196470
│   0x000000000000001b (INIT_ARRAYSZ)       168 (bytes)
│   0x000000000000001a (FINI_ARRAY)         0x196518
│   0x000000000000001c (FINI_ARRAYSZ)       8 (bytes)
│   0x0000000000000004 (HASH)               0x328
├── readelf --wide --debug-dump=rawline {}
│ @@ -93,15 +93,15 @@
│    Opcode 8 has 0 args
│    Opcode 9 has 1 arg
│    Opcode 10 has 0 args
│    Opcode 11 has 0 args
│    Opcode 12 has 1 arg
│  
│   The Directory Table (offset 0xaa):
│ -  1	/gnu/store/gv4mv8xcnmqd2mglfnq3j5dsn2m83xif-gcc-cross-sans-libc-riscv64-linux-gnu-7.5.0-lib/lib/gcc/riscv64-linux-gnu/7.5.0/include
│ +  1	/gnu/store/22m26qjs7iapk4767kizj7b57mx0hl0k-gcc-cross-sans-libc-riscv64-linux-gnu-7.5.0-lib/lib/gcc/riscv64-linux-gnu/7.5.0/include
│    2	../posix/bits
│    3	../libio/bits
│    4	../wcsmbs/bits/types
│    5	../iconv
│    6	../sysdeps/unix/sysv/linux/bits
│    7	../libio
│    8	../include
├── strings --all --bytes=8 {}
│ @@ -131,15 +131,15 @@
│  libm.so.6
│  libgcc_s.so.1
│  libc.so.6
│  ld-linux-riscv64-lp64d.so.1
│  GLIBC_2.27
│  GCC_4.2.0
│  GCC_4.3.0
│ -/gnu/store/mqbnph0ip4q87izvidhbxkah6pyad06d-gcc-cross-riscv64-linux-gnu-10.3.0-lib/riscv64-linux-gnu/lib
│ +/gnu/store/6vr7a5dkjz1rfypdk71mfvabdvvdfmk5-gcc-cross-riscv64-linux-gnu-10.3.0-lib/riscv64-linux-gnu/lib
│  _ITM_addUserCommitAction
│  _ITM_memcpyRtWn
│  _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev
│  _ITM_RU1
│  _ZGTtdlPv
│  _ZNSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEED1Ev
│  _ITM_RU8
├── readelf --wide --decompress --hex-dump=.dynstr {}
│ @@ -165,17 +165,17 @@
│    0x00003458 6763635f 732e736f 2e31006c 6962632e gcc_s.so.1.libc.
│    0x00003468 736f2e36 006c642d 6c696e75 782d7269 so.6.ld-linux-ri
│    0x00003478 73637636 342d6c70 3634642e 736f2e31 scv64-lp64d.so.1
│    0x00003488 00474c49 42435f32 2e323700 4743435f .GLIBC_2.27.GCC_
│    0x00003498 342e322e 30004743 435f332e 33004743 4.2.0.GCC_3.3.GC
│    0x000034a8 435f342e 332e3000 4743435f 332e3400 C_4.3.0.GCC_3.4.
│    0x000034b8 4743435f 332e3000 2f676e75 2f73746f GCC_3.0./gnu/sto
│ -  0x000034c8 72652f6d 71626e70 68306970 34713837 re/mqbnph0ip4q87
│ -  0x000034d8 697a7669 64686278 6b616836 70796164 izvidhbxkah6pyad
│ -  0x000034e8 3036642d 6763632d 63726f73 732d7269 06d-gcc-cross-ri
│ +  0x000034c8 72652f36 76723761 35646b6a 7a317266 re/6vr7a5dkjz1rf
│ +  0x000034d8 7970646b 37316d66 76616264 76766466 ypdk71mfvabdvvdf
│ +  0x000034e8 6d6b352d 6763632d 63726f73 732d7269 mk5-gcc-cross-ri
│    0x000034f8 73637636 342d6c69 6e75782d 676e752d scv64-linux-gnu-
│    0x00003508 31302e33 2e302d6c 69622f72 69736376 10.3.0-lib/riscv
│    0x00003518 36342d6c 696e7578 2d676e75 2f6c6962 64-linux-gnu/lib
│    0x00003528 005f4954 4d5f6164 64557365 72436f6d ._ITM_addUserCom
│    0x00003538 6d697441 6374696f 6e005f49 544d5f6d mitAction._ITM_m
│    0x00003548 656d6370 79527457 6e005f5a 4e537436 emcpyRtWn._ZNSt6
│    0x00003558 76656374 6f72494e 5374375f 5f637878 vectorINSt7__cxx
├── readelf --wide --decompress --hex-dump=.gnu_debuglink {}
│ @@ -1,5 +1,5 @@
│  
│  Hex dump of section '.gnu_debuglink':
│    0x00000000 62697463 6f696e2d 636c692e 64626700 bitcoin-cli.dbg.
│ -  0x00000010 ff248b68                            .$.h
│ +  0x00000010 2147614f                            !GaO

Also for windows:

*** 4312365,4312375 ****
    Opcode 11 has 0 args
    Opcode 12 has 1 arg
  
   The Directory Table (offset 0x193e38):
    1	../../../gcc-10.3.0/libgcc
!   2	/gnu/store/5z87q46kzx71fyb6z8z6f7irvn9wpfd2-mingw-w64-x86_64-winpthreads-8.0.0/include
    3	.
  
   The File Name Table (offset 0x193ead):
    Entry	Dir	Time	Size	Name
    1	1	0	0	unwind-seh.c
--- 4312365,4312375 ----
    Opcode 11 has 0 args
    Opcode 12 has 1 arg
  
   The Directory Table (offset 0x193e38):
    1	../../../gcc-10.3.0/libgcc
!   2	/gnu/store/39m4gjy9dn18r6vcka1iyvl0979zwnv8-mingw-w64-x86_64-winpthreads-8.0.0/include
    3	.
  
   The File Name Table (offset 0x193ead):
    Entry	Dir	Time	Size	Name
    1	1	0	0	unwind-seh.c

arm-linux-gnueabihf and arm64-apple-darwin have some differences in bitcoin-qt that I'm investigating.

Also the mac builds have different dmg binaries because that is (and must be) arch specific.

@DrahtBot
Copy link
Contributor

DrahtBot commented Mar 19, 2022

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Conflicts

No conflicts as of last run.

@fanquake
Copy link
Member

Similar issues with riscv, but I'm not sure where to patch to resolve this:

Patching glibc 2.27 in a similar way to 2.24 should take care of the RISC-V issue.

Also the mac builds have different dmg binaries because that is (and must be) arch specific.

Let's remove dmg. #24031

@prusnak
Copy link
Contributor

prusnak commented Mar 20, 2022

Patching glibc 2.27 in a similar way to 2.24 should take care of the RISC-V issue.

It seems that glibc 2.27 has already been patched in 91b6733 ?

@achow101 achow101 force-pushed the guix-cross-arch-repro branch from 91b6733 to f5bff13 Compare March 21, 2022 17:54
@achow101
Copy link
Member Author

I figured out the riscv non-determinism. glibc needed to be patched in a different spot. I've also added some things to configure.ac to tell it to not put RUNPATH in the binary.

@achow101 achow101 force-pushed the guix-cross-arch-repro branch from 86da96c to 0a0597b Compare March 22, 2022 00:15
@hebasto
Copy link
Member

hebasto commented Mar 22, 2022

Guix builds on arm64:

# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
4f972682b7af6059fa3d09f578069e357fed9345ece4e8f012cade206766a846  guix-build-0a0597b03d14/output/arm-linux-gnueabihf/SHA256SUMS.part
31800c5388daf75729de6f728b7e906fb22f535e6f523e642f7066b817d0e34c  guix-build-0a0597b03d14/output/arm-linux-gnueabihf/bitcoin-0a0597b03d14-arm-linux-gnueabihf-debug.tar.gz
8451152d5e0c7b08fee3ea9966065672db21bc2477f1ef54c7b66e1e2e90f20c  guix-build-0a0597b03d14/output/arm-linux-gnueabihf/bitcoin-0a0597b03d14-arm-linux-gnueabihf.tar.gz
16b809f5d7a59f5a680c8e84a9ffced5fb60b647f6299b758f320fafd30fe0fb  guix-build-0a0597b03d14/output/arm64-apple-darwin/SHA256SUMS.part
0987abfa9eecc5f52dd015d2263160bfba21476e6ba87d9aa0675231f2d4f067  guix-build-0a0597b03d14/output/arm64-apple-darwin/bitcoin-0a0597b03d14-arm64-apple-darwin-unsigned.dmg
c170e662d01a79cc6faf325e431bb65e949e2a8a217acaa7fb1ce558f46b19ee  guix-build-0a0597b03d14/output/arm64-apple-darwin/bitcoin-0a0597b03d14-arm64-apple-darwin-unsigned.tar.gz
c898e50c16434f49a6391732bdd2eaeb3730ba34c7d0bed57efd8607eac47f24  guix-build-0a0597b03d14/output/arm64-apple-darwin/bitcoin-0a0597b03d14-arm64-apple-darwin.tar.gz
86e1f445ca9b858a4291d8f7b25437e810d5813eb7cdb86c950fa35b91d0a4a0  guix-build-0a0597b03d14/output/dist-archive/bitcoin-0a0597b03d14.tar.gz
5d1726dba08deceea4dc9ec26d3b7b225d2fb7e1ebc6232d39df62fe3545dfca  guix-build-0a0597b03d14/output/powerpc64-linux-gnu/SHA256SUMS.part
6e5f3fb8e73527fbc4e8fb1e20a47990b39ea0145b8dd9385abe38f6382bf5ad  guix-build-0a0597b03d14/output/powerpc64-linux-gnu/bitcoin-0a0597b03d14-powerpc64-linux-gnu-debug.tar.gz
10142a03396adbc454d2e5c9e03bf174165413b6203693cf9d3e0e3fe3ceca7f  guix-build-0a0597b03d14/output/powerpc64-linux-gnu/bitcoin-0a0597b03d14-powerpc64-linux-gnu.tar.gz
4991b73a2fcd0af33fcb28f42489491c9b8894de6d45555fc21b55710b6e956b  guix-build-0a0597b03d14/output/powerpc64le-linux-gnu/SHA256SUMS.part
4dd803b0b09fde67a5614c23f9dfe9c94cf2e8cc2f395fee25dd9c16684364cb  guix-build-0a0597b03d14/output/powerpc64le-linux-gnu/bitcoin-0a0597b03d14-powerpc64le-linux-gnu-debug.tar.gz
a8f8d12ba1b07a096d8a3aeb15dd8bc2de5aa8f41e1e01063a683b566aeace03  guix-build-0a0597b03d14/output/powerpc64le-linux-gnu/bitcoin-0a0597b03d14-powerpc64le-linux-gnu.tar.gz
1c7dedd1d63bc85ef68b22c991e5b43a3bf2a2a4cedcbfd42bd040c0eaa5a73d  guix-build-0a0597b03d14/output/riscv64-linux-gnu/SHA256SUMS.part
fca9bbfe16b529aefbcf3a54da87475765c17375731854d9bebb8515f56d42f3  guix-build-0a0597b03d14/output/riscv64-linux-gnu/bitcoin-0a0597b03d14-riscv64-linux-gnu-debug.tar.gz
d80bba8aab04dd7fa110a1aa056b82573d4db7479652791e2d85026286abb820  guix-build-0a0597b03d14/output/riscv64-linux-gnu/bitcoin-0a0597b03d14-riscv64-linux-gnu.tar.gz
2b0cc8ef99cc34beee741dd9ff6b7227ab7b9569bc121410c9af7f2738fb22ca  guix-build-0a0597b03d14/output/x86_64-apple-darwin/SHA256SUMS.part
3c0f1a2c3b5316b0098a066182751ba821ce066dc1c3e8264e3130aebdfe0bc5  guix-build-0a0597b03d14/output/x86_64-apple-darwin/bitcoin-0a0597b03d14-x86_64-apple-darwin-unsigned.dmg
7f574fbfa871313781cb669db549488ab438e5cd619f6cc5ec16bc51f7fee477  guix-build-0a0597b03d14/output/x86_64-apple-darwin/bitcoin-0a0597b03d14-x86_64-apple-darwin-unsigned.tar.gz
ae1b4c815fe65ddee2d0e730045f8769b93042bb79afbe0a2f8c94eec43f99d0  guix-build-0a0597b03d14/output/x86_64-apple-darwin/bitcoin-0a0597b03d14-x86_64-apple-darwin.tar.gz
99141907a90fa96ec3abba26debb303a38e60bd8dddc3606d1a33f0d5a2943ff  guix-build-0a0597b03d14/output/x86_64-linux-gnu/SHA256SUMS.part
db9506d6e92e8ab13b7779038373fc525837de804cfdfcb70d5585e0ad9052fa  guix-build-0a0597b03d14/output/x86_64-linux-gnu/bitcoin-0a0597b03d14-x86_64-linux-gnu-debug.tar.gz
0d427eb6ed9702fcd15ace6ee6bdb60cc6d43a178f6450ae6e0a036003ef42a3  guix-build-0a0597b03d14/output/x86_64-linux-gnu/bitcoin-0a0597b03d14-x86_64-linux-gnu.tar.gz
89e1800ddaf9c7be192b7c649ee97e66fde9eefb1a59cf1a2bf228e27f6e7d14  guix-build-0a0597b03d14/output/x86_64-w64-mingw32/SHA256SUMS.part
6178e00a4c7bd4d316ff726ab2d11f0c53577886465271e82574a8121a19fa89  guix-build-0a0597b03d14/output/x86_64-w64-mingw32/bitcoin-0a0597b03d14-win64-debug.zip
0ff4a97d24b6b2ed60062bcba431341f60b5b3082e1aaacc038b24f8f89c9c81  guix-build-0a0597b03d14/output/x86_64-w64-mingw32/bitcoin-0a0597b03d14-win64-setup-unsigned.exe
1572642245105d0bbee386206dccfb2279f9edf02d19cc82011922527589c98c  guix-build-0a0597b03d14/output/x86_64-w64-mingw32/bitcoin-0a0597b03d14-win64-unsigned.tar.gz
38235659595bbbd86a484119d5ff2077565cee215458e73b293e057cc185b149  guix-build-0a0597b03d14/output/x86_64-w64-mingw32/bitcoin-0a0597b03d14-win64.zip

@hebasto
Copy link
Member

hebasto commented Mar 23, 2022

Guix builds on x86_64:

$ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
f4e7bb22e21d084f8798341f5200ba93ab8dd6f14d78b337757938427f9d090b  guix-build-0a0597b03d14/output/aarch64-linux-gnu/SHA256SUMS.part
5063196f4c2d224b4aafc47320c061178a0c5f556fcc4637ada10597f436374d  guix-build-0a0597b03d14/output/aarch64-linux-gnu/bitcoin-0a0597b03d14-aarch64-linux-gnu-debug.tar.gz
a811f745f6f78574d128645d07895f94e4309bd2e5d99c4536395b6c3cd84ddd  guix-build-0a0597b03d14/output/aarch64-linux-gnu/bitcoin-0a0597b03d14-aarch64-linux-gnu.tar.gz
def67ba825d6d7a3b944b06c2a58699905809970379521558b3d46577a883052  guix-build-0a0597b03d14/output/arm-linux-gnueabihf/SHA256SUMS.part
31800c5388daf75729de6f728b7e906fb22f535e6f523e642f7066b817d0e34c  guix-build-0a0597b03d14/output/arm-linux-gnueabihf/bitcoin-0a0597b03d14-arm-linux-gnueabihf-debug.tar.gz
3476cab7aedcee1916dc5c4fdda7007cec52900bfb5cff2d2e44d9a5531a4eeb  guix-build-0a0597b03d14/output/arm-linux-gnueabihf/bitcoin-0a0597b03d14-arm-linux-gnueabihf.tar.gz
a3d4d4cfbae5f21ad88f46b149d9b6c41aa12029f071f2ba1a8318cf0f0cd0d7  guix-build-0a0597b03d14/output/arm64-apple-darwin/SHA256SUMS.part
2b81bec2400c783645e7691a6dbb16e8f6020d9ae4a010e4bb5480b1f272a205  guix-build-0a0597b03d14/output/arm64-apple-darwin/bitcoin-0a0597b03d14-arm64-apple-darwin-unsigned.dmg
c07c4f53ac19b034e898a0133d893d32a662643142cb451939f0419b417c425e  guix-build-0a0597b03d14/output/arm64-apple-darwin/bitcoin-0a0597b03d14-arm64-apple-darwin-unsigned.tar.gz
6234f8674174e248c3be08aba1dffce790523488aee5d3883d878ca1f0c75f10  guix-build-0a0597b03d14/output/arm64-apple-darwin/bitcoin-0a0597b03d14-arm64-apple-darwin.tar.gz
86e1f445ca9b858a4291d8f7b25437e810d5813eb7cdb86c950fa35b91d0a4a0  guix-build-0a0597b03d14/output/dist-archive/bitcoin-0a0597b03d14.tar.gz
5d1726dba08deceea4dc9ec26d3b7b225d2fb7e1ebc6232d39df62fe3545dfca  guix-build-0a0597b03d14/output/powerpc64-linux-gnu/SHA256SUMS.part
6e5f3fb8e73527fbc4e8fb1e20a47990b39ea0145b8dd9385abe38f6382bf5ad  guix-build-0a0597b03d14/output/powerpc64-linux-gnu/bitcoin-0a0597b03d14-powerpc64-linux-gnu-debug.tar.gz
10142a03396adbc454d2e5c9e03bf174165413b6203693cf9d3e0e3fe3ceca7f  guix-build-0a0597b03d14/output/powerpc64-linux-gnu/bitcoin-0a0597b03d14-powerpc64-linux-gnu.tar.gz
4991b73a2fcd0af33fcb28f42489491c9b8894de6d45555fc21b55710b6e956b  guix-build-0a0597b03d14/output/powerpc64le-linux-gnu/SHA256SUMS.part
4dd803b0b09fde67a5614c23f9dfe9c94cf2e8cc2f395fee25dd9c16684364cb  guix-build-0a0597b03d14/output/powerpc64le-linux-gnu/bitcoin-0a0597b03d14-powerpc64le-linux-gnu-debug.tar.gz
a8f8d12ba1b07a096d8a3aeb15dd8bc2de5aa8f41e1e01063a683b566aeace03  guix-build-0a0597b03d14/output/powerpc64le-linux-gnu/bitcoin-0a0597b03d14-powerpc64le-linux-gnu.tar.gz
1c7dedd1d63bc85ef68b22c991e5b43a3bf2a2a4cedcbfd42bd040c0eaa5a73d  guix-build-0a0597b03d14/output/riscv64-linux-gnu/SHA256SUMS.part
fca9bbfe16b529aefbcf3a54da87475765c17375731854d9bebb8515f56d42f3  guix-build-0a0597b03d14/output/riscv64-linux-gnu/bitcoin-0a0597b03d14-riscv64-linux-gnu-debug.tar.gz
d80bba8aab04dd7fa110a1aa056b82573d4db7479652791e2d85026286abb820  guix-build-0a0597b03d14/output/riscv64-linux-gnu/bitcoin-0a0597b03d14-riscv64-linux-gnu.tar.gz
3638e44db0b6ace16a6a7aee845098d6012fbf48643455f409c1333ee820f1df  guix-build-0a0597b03d14/output/x86_64-apple-darwin/SHA256SUMS.part
3c0f1a2c3b5316b0098a066182751ba821ce066dc1c3e8264e3130aebdfe0bc5  guix-build-0a0597b03d14/output/x86_64-apple-darwin/bitcoin-0a0597b03d14-x86_64-apple-darwin-unsigned.dmg
bb43eefc72b177c9b1d885e99c24cdf63336478b6c6f729b5c5fbcb152889fd0  guix-build-0a0597b03d14/output/x86_64-apple-darwin/bitcoin-0a0597b03d14-x86_64-apple-darwin-unsigned.tar.gz
ae1b4c815fe65ddee2d0e730045f8769b93042bb79afbe0a2f8c94eec43f99d0  guix-build-0a0597b03d14/output/x86_64-apple-darwin/bitcoin-0a0597b03d14-x86_64-apple-darwin.tar.gz
99141907a90fa96ec3abba26debb303a38e60bd8dddc3606d1a33f0d5a2943ff  guix-build-0a0597b03d14/output/x86_64-linux-gnu/SHA256SUMS.part
db9506d6e92e8ab13b7779038373fc525837de804cfdfcb70d5585e0ad9052fa  guix-build-0a0597b03d14/output/x86_64-linux-gnu/bitcoin-0a0597b03d14-x86_64-linux-gnu-debug.tar.gz
0d427eb6ed9702fcd15ace6ee6bdb60cc6d43a178f6450ae6e0a036003ef42a3  guix-build-0a0597b03d14/output/x86_64-linux-gnu/bitcoin-0a0597b03d14-x86_64-linux-gnu.tar.gz
84712f6bdd30585c384e7715f394b73690747932c752bc0e8bfd77cca9e5fda8  guix-build-0a0597b03d14/output/x86_64-w64-mingw32/SHA256SUMS.part
ab086375ea461481815d0e241556fc980083ee3f8d2fc9ed770a4e8f8a67ec09  guix-build-0a0597b03d14/output/x86_64-w64-mingw32/bitcoin-0a0597b03d14-win64-debug.zip
0ff4a97d24b6b2ed60062bcba431341f60b5b3082e1aaacc038b24f8f89c9c81  guix-build-0a0597b03d14/output/x86_64-w64-mingw32/bitcoin-0a0597b03d14-win64-setup-unsigned.exe
1572642245105d0bbee386206dccfb2279f9edf02d19cc82011922527589c98c  guix-build-0a0597b03d14/output/x86_64-w64-mingw32/bitcoin-0a0597b03d14-win64-unsigned.tar.gz
4f086fd4b07091a69d42d6f2cdedd292d221ba6454e6193330dc1626f693ead5  guix-build-0a0597b03d14/output/x86_64-w64-mingw32/bitcoin-0a0597b03d14-win64.zip

Copy link
Member

@hebasto hebasto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approach ACK 0a0597b.

@hebasto
Copy link
Member

hebasto commented Mar 23, 2022

I've also added some things to configure.ac to tell it to not put RUNPATH in the binary.

How could this affect regular, non-guix, builds?

fanquake added a commit to fanquake/bitcoin that referenced this pull request Mar 23, 2022
Every system we support has this version of libtool available, which was
released in 2015:
https://savannah.gnu.org/forum/forum.php?forum_id=8210.
See also: https://repology.org/project/libtool/versions.

After a 7 year hitus, 2.4.7 has also very recently been released:
https://savannah.gnu.org/forum/forum.php?forum_id=10139.

Partially motivated by comments in bitcoin#24615.
fanquake added a commit to fanquake/bitcoin that referenced this pull request Mar 23, 2022
Every system we support has 2.4.6 available, except for OpenBSD, which
currently ships with 2.4.2 (released 2011). For now, set our minimum
required version to that.

After a 7 year hitus, 2.4.7 has also very recently been released:
https://savannah.gnu.org/forum/forum.php?forum_id=10139.

Partially motivated by comments in bitcoin#24615.

See also: https://repology.org/project/libtool/versions
@achow101
Copy link
Member Author

How could this affect regular, non-guix, builds?

I'm pretty sure this would have no effect since we don't usually have RUNPATH added anyways?

@hebasto
Copy link
Member

hebasto commented Mar 24, 2022

How could this affect regular, non-guix, builds?

I'm pretty sure this would have no effect since we don't usually have RUNPATH added anyways?

Is using of -Wl,-rpath in

LIBCXX_FLAGS="-nostdinc++ -stdlib=libc++ -L${LIBCXX_DIR}lib -lc++abi -I${LIBCXX_DIR}include -I${LIBCXX_DIR}include/c++/v1 -lpthread -Wl,-rpath,${LIBCXX_DIR}lib -Wno-unused-command-line-argument"
considered?

fanquake added a commit to bitcoin-core/gui that referenced this pull request Mar 24, 2022
061accf build: require libtool 2.4.2 (fanquake)

Pull request description:

  Every system we support has 2.4.6 available, except for OpenBSD, which
  [currently ships with 2.4.2](https://github.com/openbsd/ports/blob/master/devel/libtool/Makefile) (released 2011). For now, set our minimum
  required version to that.

  After a 7 year hitus, 2.4.7 has also very recently been released:
  https://savannah.gnu.org/forum/forum.php?forum_id=10139.

  Partially motivated by comments in bitcoin/bitcoin#24615.

  See also: https://repology.org/project/libtool/versions

ACKs for top commit:
  achow101:
    ACK 061accf
  hebasto:
    ACK 061accf
  prusnak:
    ACK 061accf

Tree-SHA512: bc032022b8609b73253ff1c4fd480f4d09be761b8fec295f39319f9499ee2df116f55295da476be551c43ed88fbb0bfed7bb5a188b9979b34147fe39737ec76f
@achow101
Copy link
Member Author

Is using of -Wl,-rpath

My understanding is that that will still work. This change does not unilaterally remove runpath, just the automatic adding of it by libtool.

@hebasto
Copy link
Member

hebasto commented Mar 24, 2022

@achow101

I've also added some things to configure.ac to tell it to not put RUNPATH in the binary.

Could you point out affected target platforms? Asking because on the master branch examining guix binaries for x86_64 target

$ readelf -d bin/bitcoind | grep -i runpath

returns nothing.

@fanquake
Copy link
Member

Could you point out affected target platforms?

RISC-V

@hebasto
Copy link
Member

hebasto commented Mar 24, 2022

Could you point out affected target platforms?

RISC-V

  1. If RISC-V is so specific, maybe (a) document the used libtool hack, and/or (b) make it conditional?
  2. What makes RISC-V so special?
  3. FWIW, I verified the 0a0597b commit separately, and it indeed gets rid of runpath in riscv64-linux-gnu GUIX binaries.

@achow101
Copy link
Member Author

achow101 commented Mar 28, 2022

The diff for bitcoin-qt in arm-linux-gnueabihf is really small:

*** output-arm64/arm-arm-qt.dump	2022-03-22 19:21:15.418289681 -0400
--- output-x86_64/x86_64-arm-qt.dump	2022-03-22 19:17:50.296263083 -0400
***************
*** 3949535,3949553 ****
    9ce74e:	fa2e f702 	lsr.w	r7, lr, r2
    9ce752:	9705      	str	r7, [sp, #20]
    9ce754:	f1c2 0720 	rsb	r7, r2, #32
    9ce758:	f1a2 0b20 	sub.w	fp, r2, #32
    9ce75c:	fa20 f707 	lsr.w	r7, r0, r7
!   9ce760:	9707      	str	r7, [sp, #28]
    9ce762:	9f05      	ldr	r7, [sp, #20]
    9ce764:	fa00 fb0b 	lsl.w	fp, r0, fp
!   9ce768:	f8cd b018 	str.w	fp, [sp, #24]
    9ce76c:	fa07 fb02 	lsl.w	fp, r7, r2
!   9ce770:	9f06      	ldr	r7, [sp, #24]
    9ce772:	fa00 f202 	lsl.w	r2, r0, r2
    9ce776:	ea4b 0b07 	orr.w	fp, fp, r7
!   9ce77a:	9f07      	ldr	r7, [sp, #28]
    9ce77c:	ebbc 0202 	subs.w	r2, ip, r2
    9ce780:	9206      	str	r2, [sp, #24]
    9ce782:	ea4b 0b07 	orr.w	fp, fp, r7
    9ce786:	f04f 32ff 	mov.w	r2, #4294967295	; 0xffffffff
    9ce78a:	eb6e 0b0b 	sbc.w	fp, lr, fp
--- 3949535,3949553 ----
    9ce74e:	fa2e f702 	lsr.w	r7, lr, r2
    9ce752:	9705      	str	r7, [sp, #20]
    9ce754:	f1c2 0720 	rsb	r7, r2, #32
    9ce758:	f1a2 0b20 	sub.w	fp, r2, #32
    9ce75c:	fa20 f707 	lsr.w	r7, r0, r7
!   9ce760:	9706      	str	r7, [sp, #24]
    9ce762:	9f05      	ldr	r7, [sp, #20]
    9ce764:	fa00 fb0b 	lsl.w	fp, r0, fp
!   9ce768:	f8cd b01c 	str.w	fp, [sp, #28]
    9ce76c:	fa07 fb02 	lsl.w	fp, r7, r2
!   9ce770:	9f07      	ldr	r7, [sp, #28]
    9ce772:	fa00 f202 	lsl.w	r2, r0, r2
    9ce776:	ea4b 0b07 	orr.w	fp, fp, r7
!   9ce77a:	9f06      	ldr	r7, [sp, #24]
    9ce77c:	ebbc 0202 	subs.w	r2, ip, r2
    9ce780:	9206      	str	r2, [sp, #24]
    9ce782:	ea4b 0b07 	orr.w	fp, fp, r7
    9ce786:	f04f 32ff 	mov.w	r2, #4294967295	; 0xffffffff
    9ce78a:	eb6e 0b0b 	sbc.w	fp, lr, fp

It's just that in this one function, two local variables are ordered differently depending on which arch did the build. It's specifically the double_conversion::FastFixedDtoa which is used by Qt itself. I'm not sure why this happens.

sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Apr 2, 2022
061accf build: require libtool 2.4.2 (fanquake)

Pull request description:

  Every system we support has 2.4.6 available, except for OpenBSD, which
  [currently ships with 2.4.2](https://github.com/openbsd/ports/blob/master/devel/libtool/Makefile) (released 2011). For now, set our minimum
  required version to that.

  After a 7 year hitus, 2.4.7 has also very recently been released:
  https://savannah.gnu.org/forum/forum.php?forum_id=10139.

  Partially motivated by comments in bitcoin#24615.

  See also: https://repology.org/project/libtool/versions

ACKs for top commit:
  achow101:
    ACK 061accf
  hebasto:
    ACK 061accf
  prusnak:
    ACK 061accf

Tree-SHA512: bc032022b8609b73253ff1c4fd480f4d09be761b8fec295f39319f9499ee2df116f55295da476be551c43ed88fbb0bfed7bb5a188b9979b34147fe39737ec76f
@laanwj
Copy link
Member

laanwj commented Apr 4, 2022

I'm not sure why this happens.

As this function deals with double conversiont: maybe floating point arithmetic is used inside gcc (e.g. something to do with constants computation)? This is the only lead I have on computation result difference between platforms.

@fanquake
Copy link
Member

fanquake commented Apr 21, 2022

macOS reproducibility should be solved now that #24031 is in. Could you rebase to include that, and the updated libtool requirement in your next push. I'm still not sure about using _LT_TAGVAR in configure. Will see if there's another way to take care of the RISC-V rpath.

Edit: I see that arm macOS bitcoin-qt has the same non-derminism as the other arm build.

@achow101
Copy link
Member Author

Rebased

@achow101 achow101 force-pushed the guix-cross-arch-repro branch from 0a0597b to f367922 Compare April 21, 2022 16:02
@achow101 achow101 force-pushed the guix-cross-arch-repro branch from f367922 to 636b60d Compare May 18, 2022 15:08
laanwj added a commit that referenced this pull request Jul 1, 2022
54faac9 guix: Remove guix store paths from glibc (Andrew Chow)
1d4d711 guix: Map all guix store prefixes to /usr (Andrew Chow)

Pull request description:

  This cherry-picks two commits from #24615, with minor edits. When building master, only the `x86_64-apple-darwin` build is reproducible across x86_64 and arm64. With these two changes we get x86_64 -> arm64 reproducibility for:
  * `powerpc64-linux-gnu`
  * `powerpc64le-linux-gnu`
  * `x86_64-apple-darwin`
  * `x86_64-linux-gnu`

  We can't compare `aarch64-linux-gnu`, because we can't currently build for `aarch64-linux-gnu` on `aarch64-linux-gnu`/`arm64`. See (#22458).

  For all the other hosts, the reproducibility issues are known / being worked on (see discussion in #24615). However there's no real reason to wait for those to be fixed before merging these changes, as it'd be great to have cross arch reproducibility just for `x86_64-linux-gnu`. I'm also unsure about the approach taken in that PR in regards to the libtool changes (and think there might even be a Guix bug involved).

  As I've added to the patch file, we may be able to drop these patches and use `--with-nonshared-cflags` when we are building newer versions of glibc.

  Guix Build (x86_64):
  ```bash
  1eadc59775a209e707539a6bdfe4c96e13a17f5373bfaf6477a65c1a44b2459d  guix-build-54faac968971/output/arm-linux-gnueabihf/SHA256SUMS.part
  1f424e448223a1e1ee1658efeb3bcc0d8b08a2a2bdc9d2dc779c931b956b527f  guix-build-54faac968971/output/arm-linux-gnueabihf/bitcoin-54faac968971-arm-linux-gnueabihf-debug.tar.gz
  212f55cf55dac34a3a6471bf0585f5ba1ed0a4801e9c0003961617881edb7ee7  guix-build-54faac968971/output/arm-linux-gnueabihf/bitcoin-54faac968971-arm-linux-gnueabihf.tar.gz
  f920fdc9407371be8fc5638a0f5ce2f1202889d820bda4451096d162b5d28d94  guix-build-54faac968971/output/arm64-apple-darwin/SHA256SUMS.part
  066098fe095a3dd46fa3c84e459aca1e8e4b3d564ab3f20a2542c8c46dd37b5a  guix-build-54faac968971/output/arm64-apple-darwin/bitcoin-54faac968971-arm64-apple-darwin-unsigned.dmg
  d2dc320975f8ec67595c274fcb7eda56c18ba72b905160537be97408cfdf1baf  guix-build-54faac968971/output/arm64-apple-darwin/bitcoin-54faac968971-arm64-apple-darwin-unsigned.tar.gz
  68013ac011ebac25e8ee2d2421266c66d1e20d309133eb6121ba89807e17fda5  guix-build-54faac968971/output/arm64-apple-darwin/bitcoin-54faac968971-arm64-apple-darwin.tar.gz
  d992dd9f50fec89e0bdf63e8e9352ebcd2b503424cb441f01c06074aa0b63b0e  guix-build-54faac968971/output/dist-archive/bitcoin-54faac968971.tar.gz
  e26ea298d15a87ce484afa59ca0c36ecfd173314b440e091cd93de11fe2dd91c  guix-build-54faac968971/output/powerpc64-linux-gnu/SHA256SUMS.part
  1a17091e7e515cc89a2e0a91a08ea0deb48847d5650be936f3365449002a59a5  guix-build-54faac968971/output/powerpc64-linux-gnu/bitcoin-54faac968971-powerpc64-linux-gnu-debug.tar.gz
  63ce21f6ee3a971a7a4533934ec559c727d2e3fc123fb65b2dec622168af76d5  guix-build-54faac968971/output/powerpc64-linux-gnu/bitcoin-54faac968971-powerpc64-linux-gnu.tar.gz
  267ff9d9ed3d8108033d676218399c4e56ba83eb30a3b4a6417cac8d1ce5e2f4  guix-build-54faac968971/output/powerpc64le-linux-gnu/SHA256SUMS.part
  a0db19b9829bd65067e2075c2d3e55065d03a4456a31ccb3ed8a70f7f3dcf1a0  guix-build-54faac968971/output/powerpc64le-linux-gnu/bitcoin-54faac968971-powerpc64le-linux-gnu-debug.tar.gz
  9971ba819854a77306358b31ddc2d21074b8cca57cfd8ce7f2ca83a1cc8f0a46  guix-build-54faac968971/output/powerpc64le-linux-gnu/bitcoin-54faac968971-powerpc64le-linux-gnu.tar.gz
  e18fe6d4db3048368db25846555a30ec97f71dcfdfcc3e86d7fe46c33c762a26  guix-build-54faac968971/output/riscv64-linux-gnu/SHA256SUMS.part
  4879fd332bee8570e6edfe5d0cbd3eea7df18f058ed25286aedb377858e27793  guix-build-54faac968971/output/riscv64-linux-gnu/bitcoin-54faac968971-riscv64-linux-gnu-debug.tar.gz
  470fafbab9d7328e172c658f58fd6f62f7890ce5d3dfe3bbfacd717b6d2c00f3  guix-build-54faac968971/output/riscv64-linux-gnu/bitcoin-54faac968971-riscv64-linux-gnu.tar.gz
  6b119a38b8ac1dd50e3cee69e8464ab21d624217cb3f50a1aef216e9ece27946  guix-build-54faac968971/output/x86_64-apple-darwin/SHA256SUMS.part
  afff2a8184007d6a3eaf7b6735417e7b9b404a801306c71f7d653907055d442c  guix-build-54faac968971/output/x86_64-apple-darwin/bitcoin-54faac968971-x86_64-apple-darwin-unsigned.dmg
  775298169fa45197f5b560e5581d6e3c021ed009487065f7e3a042914396b3cd  guix-build-54faac968971/output/x86_64-apple-darwin/bitcoin-54faac968971-x86_64-apple-darwin-unsigned.tar.gz
  51b0d2adae63aeca021621ec25278c202e82d8bc3ef5e7a9d2bfd93bd7a3fcab  guix-build-54faac968971/output/x86_64-apple-darwin/bitcoin-54faac968971-x86_64-apple-darwin.tar.gz
  ca9cd0083083ec1632a37396076fef638c00fed99efbb9e39521195867746301  guix-build-54faac968971/output/x86_64-linux-gnu/SHA256SUMS.part
  0e5a017bca3c0a2a466d230a470ec9c44b5d0bfd60d98f62a3a54f4cccb8cd23  guix-build-54faac968971/output/x86_64-linux-gnu/bitcoin-54faac968971-x86_64-linux-gnu-debug.tar.gz
  3b26566a553f17ccbcbf548675d0e8ce47a58a1e23c6b7c9792565117a223855  guix-build-54faac968971/output/x86_64-linux-gnu/bitcoin-54faac968971-x86_64-linux-gnu.tar.gz
  fa2f240f7bd7cfadfeb08188c044c8e34fd9c24785f4e2035c1256c3173c5589  guix-build-54faac968971/output/x86_64-w64-mingw32/SHA256SUMS.part
  0212ae95d100c9a4dbe062a14b49952279c91cbf352c786369320c3ed006c23a  guix-build-54faac968971/output/x86_64-w64-mingw32/bitcoin-54faac968971-win64-debug.zip
  750aa7c31cfa1bd5e0ae3f2ea52e526a73f1d3879b9f1a365967bbc317d4cca4  guix-build-54faac968971/output/x86_64-w64-mingw32/bitcoin-54faac968971-win64-setup-unsigned.exe
  f7bdda020d299df778fd68ad556d8124d87f7f9f0c4a77b62e05db20f5bbec2b  guix-build-54faac968971/output/x86_64-w64-mingw32/bitcoin-54faac968971-win64-unsigned.tar.gz
  d7f8b16634ceb95db3d28a024827a51f689dc0ab34ed40f205861bbc254f6206  guix-build-54faac968971/output/x86_64-w64-mingw32/bitcoin-54faac968971-win64.zip
  ```

  Guix Build (arm64):
  ```bash
  e4492294c284054e8378f8ac0c08b5d2efe5eeeec57ca12c3192da87a4dd4266  guix-build-54faac968971/output/arm-linux-gnueabihf/SHA256SUMS.part
  1f424e448223a1e1ee1658efeb3bcc0d8b08a2a2bdc9d2dc779c931b956b527f  guix-build-54faac968971/output/arm-linux-gnueabihf/bitcoin-54faac968971-arm-linux-gnueabihf-debug.tar.gz
  b2c454f589afea22d5126be14d1b9eb3aed7d99d59e50591db18c2cc3f190b23  guix-build-54faac968971/output/arm-linux-gnueabihf/bitcoin-54faac968971-arm-linux-gnueabihf.tar.gz
  575bbf78dd6002a7a5653277c24cd8d98471b6454e0801b558ac2a754788f2fa  guix-build-54faac968971/output/arm64-apple-darwin/SHA256SUMS.part
  03d8175e0db26b56fee757b307b8b519e4df0c639caa6afdfdea5ce7de63ecc4  guix-build-54faac968971/output/arm64-apple-darwin/bitcoin-54faac968971-arm64-apple-darwin-unsigned.dmg
  8ab4e3a65f09168b42c40ec736e507eb3e9b787d27a56db21a3c601e81d81262  guix-build-54faac968971/output/arm64-apple-darwin/bitcoin-54faac968971-arm64-apple-darwin-unsigned.tar.gz
  43024487cf0120a0a42aeba228f01f2a5303d2940d838f59106fa246a484662d  guix-build-54faac968971/output/arm64-apple-darwin/bitcoin-54faac968971-arm64-apple-darwin.tar.gz
  d992dd9f50fec89e0bdf63e8e9352ebcd2b503424cb441f01c06074aa0b63b0e  guix-build-54faac968971/output/dist-archive/bitcoin-54faac968971.tar.gz
  e26ea298d15a87ce484afa59ca0c36ecfd173314b440e091cd93de11fe2dd91c  guix-build-54faac968971/output/powerpc64-linux-gnu/SHA256SUMS.part
  1a17091e7e515cc89a2e0a91a08ea0deb48847d5650be936f3365449002a59a5  guix-build-54faac968971/output/powerpc64-linux-gnu/bitcoin-54faac968971-powerpc64-linux-gnu-debug.tar.gz
  63ce21f6ee3a971a7a4533934ec559c727d2e3fc123fb65b2dec622168af76d5  guix-build-54faac968971/output/powerpc64-linux-gnu/bitcoin-54faac968971-powerpc64-linux-gnu.tar.gz
  267ff9d9ed3d8108033d676218399c4e56ba83eb30a3b4a6417cac8d1ce5e2f4  guix-build-54faac968971/output/powerpc64le-linux-gnu/SHA256SUMS.part
  a0db19b9829bd65067e2075c2d3e55065d03a4456a31ccb3ed8a70f7f3dcf1a0  guix-build-54faac968971/output/powerpc64le-linux-gnu/bitcoin-54faac968971-powerpc64le-linux-gnu-debug.tar.gz
  9971ba819854a77306358b31ddc2d21074b8cca57cfd8ce7f2ca83a1cc8f0a46  guix-build-54faac968971/output/powerpc64le-linux-gnu/bitcoin-54faac968971-powerpc64le-linux-gnu.tar.gz
  603e09db23e20ee834cfdeaa58517fa6795779131f76c8e67c79ee4118043ba6  guix-build-54faac968971/output/riscv64-linux-gnu/SHA256SUMS.part
  4879fd332bee8570e6edfe5d0cbd3eea7df18f058ed25286aedb377858e27793  guix-build-54faac968971/output/riscv64-linux-gnu/bitcoin-54faac968971-riscv64-linux-gnu-debug.tar.gz
  aad8eb83730dbf079ee2c894e33ebf6df78e302500493b10e72a2aab9fa51b49  guix-build-54faac968971/output/riscv64-linux-gnu/bitcoin-54faac968971-riscv64-linux-gnu.tar.gz
  6b119a38b8ac1dd50e3cee69e8464ab21d624217cb3f50a1aef216e9ece27946  guix-build-54faac968971/output/x86_64-apple-darwin/SHA256SUMS.part
  afff2a8184007d6a3eaf7b6735417e7b9b404a801306c71f7d653907055d442c  guix-build-54faac968971/output/x86_64-apple-darwin/bitcoin-54faac968971-x86_64-apple-darwin-unsigned.dmg
  775298169fa45197f5b560e5581d6e3c021ed009487065f7e3a042914396b3cd  guix-build-54faac968971/output/x86_64-apple-darwin/bitcoin-54faac968971-x86_64-apple-darwin-unsigned.tar.gz
  51b0d2adae63aeca021621ec25278c202e82d8bc3ef5e7a9d2bfd93bd7a3fcab  guix-build-54faac968971/output/x86_64-apple-darwin/bitcoin-54faac968971-x86_64-apple-darwin.tar.gz
  ca9cd0083083ec1632a37396076fef638c00fed99efbb9e39521195867746301  guix-build-54faac968971/output/x86_64-linux-gnu/SHA256SUMS.part
  0e5a017bca3c0a2a466d230a470ec9c44b5d0bfd60d98f62a3a54f4cccb8cd23  guix-build-54faac968971/output/x86_64-linux-gnu/bitcoin-54faac968971-x86_64-linux-gnu-debug.tar.gz
  3b26566a553f17ccbcbf548675d0e8ce47a58a1e23c6b7c9792565117a223855  guix-build-54faac968971/output/x86_64-linux-gnu/bitcoin-54faac968971-x86_64-linux-gnu.tar.gz
  da10e58c2616b7d96fb00d24f34834b737b190c91bd533fc11130c5faf77d697  guix-build-54faac968971/output/x86_64-w64-mingw32/SHA256SUMS.part
  7b69ac09edb7795b61242d8b929808b7615e4011f1d312d495cc9410ded6c574  guix-build-54faac968971/output/x86_64-w64-mingw32/bitcoin-54faac968971-win64-debug.zip
  750aa7c31cfa1bd5e0ae3f2ea52e526a73f1d3879b9f1a365967bbc317d4cca4  guix-build-54faac968971/output/x86_64-w64-mingw32/bitcoin-54faac968971-win64-setup-unsigned.exe
  f7bdda020d299df778fd68ad556d8124d87f7f9f0c4a77b62e05db20f5bbec2b  guix-build-54faac968971/output/x86_64-w64-mingw32/bitcoin-54faac968971-win64-unsigned.tar.gz
  e90e9a7e86839cbbde7b17610b7fb6eb9a960703232d3b92040dce8df55861bd  guix-build-54faac968971/output/x86_64-w64-mingw32/bitcoin-54faac968971-win64.zip
  ```

ACKs for top commit:
  laanwj:
    ACK  54faac9

Tree-SHA512: 258e7de8e8df00995b6e952ef10d054ad127237265811eaafa537501be84459ae8f8f638618365d81e4eee8b7013db768b61c343d68e46d1d90a194bdc26b852
@achow101 achow101 force-pushed the guix-cross-arch-repro branch from 636b60d to 48d678f Compare July 1, 2022 19:25
@fanquake
Copy link
Member

fanquake commented Jul 5, 2022

Guix Build (arm64):

150fe1be648629eaebf1ab586fb2ad920e490fec7c015cabe1a628857bc728a4  guix-build-48d678faa24a/output/arm-linux-gnueabihf/SHA256SUMS.part
a86e2575e610a6f6fa13d71a77927f479d54fca4c92edba613a8e56a860eceec  guix-build-48d678faa24a/output/arm-linux-gnueabihf/bitcoin-48d678faa24a-arm-linux-gnueabihf-debug.tar.gz
a6b0e8e617b087c6ba992413a17ea4e3555140052bfe6da4facf084b4ada39cb  guix-build-48d678faa24a/output/arm-linux-gnueabihf/bitcoin-48d678faa24a-arm-linux-gnueabihf.tar.gz
6c738713597b7fdd3f4f13c2a77dad51200311b8e90e8157344184d5186f8053  guix-build-48d678faa24a/output/arm64-apple-darwin/SHA256SUMS.part
b7e3e0f196809e5e40717662a0aff055ca7af8b27a39b362310dc3a7cb355582  guix-build-48d678faa24a/output/arm64-apple-darwin/bitcoin-48d678faa24a-arm64-apple-darwin-unsigned.dmg
e084febb3570b00902dde2807259fa41749bc26fb7b6aeb4fd4ce641415e0952  guix-build-48d678faa24a/output/arm64-apple-darwin/bitcoin-48d678faa24a-arm64-apple-darwin-unsigned.tar.gz
0262250fdbfeb2e4c6880a83c7ea61614a25d313110e4025a48e6728e9661748  guix-build-48d678faa24a/output/arm64-apple-darwin/bitcoin-48d678faa24a-arm64-apple-darwin.tar.gz
21c4280395db80eda56e76f5f8a7d355c8d07d63cab6445c5c5e7d3430478d17  guix-build-48d678faa24a/output/dist-archive/bitcoin-48d678faa24a.tar.gz
ed5c2abf14c74b0ceaacc0d816713cdb34e4ff67a5320ac836bb23ef655938ae  guix-build-48d678faa24a/output/powerpc64-linux-gnu/SHA256SUMS.part
9be9d41b8aa8652462d46580ec13041dde9806abd95ce733d146b079e0b1bff6  guix-build-48d678faa24a/output/powerpc64-linux-gnu/bitcoin-48d678faa24a-powerpc64-linux-gnu-debug.tar.gz
013ce3263b4b77972509cd9c30f50f28d7fc3f15e8bc663493c1fe5d1481f1a3  guix-build-48d678faa24a/output/powerpc64-linux-gnu/bitcoin-48d678faa24a-powerpc64-linux-gnu.tar.gz
e93c54bf0b02c5163cc08552c4dfe799ff684a7465266bea004b047c36aa8748  guix-build-48d678faa24a/output/powerpc64le-linux-gnu/SHA256SUMS.part
5558db6b0d21cc59bcabec2d105125dfd4d5c8d66952141f795a334833895b67  guix-build-48d678faa24a/output/powerpc64le-linux-gnu/bitcoin-48d678faa24a-powerpc64le-linux-gnu-debug.tar.gz
655452f4ff04999317b64748e618508bd452e1eaa25e31345ad0a5f4ad3f013d  guix-build-48d678faa24a/output/powerpc64le-linux-gnu/bitcoin-48d678faa24a-powerpc64le-linux-gnu.tar.gz
22d8e6ec8c6d456602da281d0718ff8f5c43f1eb04df0e063c1b55ae8d794487  guix-build-48d678faa24a/output/riscv64-linux-gnu/SHA256SUMS.part
f300f2de7230aa61da12eaf96c4c00ce096a1fba8dd810933ba2a7e638c729ef  guix-build-48d678faa24a/output/riscv64-linux-gnu/bitcoin-48d678faa24a-riscv64-linux-gnu-debug.tar.gz
b6dfeb44ab21a9a7c1da50b395ed5e5adcea09707898b1ca23d05917ef6b1915  guix-build-48d678faa24a/output/riscv64-linux-gnu/bitcoin-48d678faa24a-riscv64-linux-gnu.tar.gz
14ac92610040188b9a7bbaf68f44df2142353a1109ea17636c4952ad54e60828  guix-build-48d678faa24a/output/x86_64-apple-darwin/SHA256SUMS.part
d5d34437bcba25ada42a4b6822c47daa00d0ef201b2e97144690d59a24fd5ec7  guix-build-48d678faa24a/output/x86_64-apple-darwin/bitcoin-48d678faa24a-x86_64-apple-darwin-unsigned.dmg
539f7de845c61e3dda5a1d7c4c45cc29c71d035c8adb17cd894dc9b73e2dc284  guix-build-48d678faa24a/output/x86_64-apple-darwin/bitcoin-48d678faa24a-x86_64-apple-darwin-unsigned.tar.gz
a71a129ae58fcc5ed53128ee5aeee89d70aff76771367f5de6f3af10dacccd9b  guix-build-48d678faa24a/output/x86_64-apple-darwin/bitcoin-48d678faa24a-x86_64-apple-darwin.tar.gz
e67a0052ecc05220b0a1d250e74738d67ecd75755a023911f7daa8c30932a5f2  guix-build-48d678faa24a/output/x86_64-linux-gnu/SHA256SUMS.part
d4182fe087f019c90b7df1429da5010b9a61cdd8597a0402962a46dbd9910124  guix-build-48d678faa24a/output/x86_64-linux-gnu/bitcoin-48d678faa24a-x86_64-linux-gnu-debug.tar.gz
e8d12c209070e1fe343fdef4dbaa1d06e0ab232275c65a681c07124bb7833aab  guix-build-48d678faa24a/output/x86_64-linux-gnu/bitcoin-48d678faa24a-x86_64-linux-gnu.tar.gz
78cb29bd6075f6b68e019fcac0a35d0b3ee22a9e55ed39e6d6b44ce5507bf997  guix-build-48d678faa24a/output/x86_64-w64-mingw32/SHA256SUMS.part
9de785dcb81884777a4b48b10fe78f53f5154b9e999eba2a3d19bf9090d43940  guix-build-48d678faa24a/output/x86_64-w64-mingw32/bitcoin-48d678faa24a-win64-debug.zip
722bbeb282cb7d059a5f6186a45161d72cb8b0ff7a32f5073d67b31870ce4721  guix-build-48d678faa24a/output/x86_64-w64-mingw32/bitcoin-48d678faa24a-win64-setup-unsigned.exe
d2814a50f600e9f8c3c67a6f0118dc8e6b081ecdd9a9690a1b12dd38a32e51b2  guix-build-48d678faa24a/output/x86_64-w64-mingw32/bitcoin-48d678faa24a-win64-unsigned.tar.gz
3aebf7afd1478e2bdab6ecc1e80718fc5fb4c0b1290ce57d0373f3ebbd2fea78  guix-build-48d678faa24a/output/x86_64-w64-mingw32/bitcoin-48d678faa24a-win64.zip

@achow101
Copy link
Member Author

achow101 commented Jul 6, 2022

Superseded by #25558 and #25559

@achow101 achow101 closed this Jul 6, 2022
@DrahtBot
Copy link
Contributor

DrahtBot commented Jul 7, 2022

Guix builds

File commit 195e07f
(master)
commit 7337c17
(master and this pull)
SHA256SUMS.part 610a710b63b60eb8... bf4b321a79eb0dc3...
*-aarch64-linux-gnu-debug.tar.gz 1175ddc275ebf282... b9bbd87b3ec9d999...
*-aarch64-linux-gnu.tar.gz 828cbdcd9c4ae698... d3f9d29c5fc9128b...
*-arm-linux-gnueabihf-debug.tar.gz 1a5bdd343cc2a15e... c439912859091b1f...
*-arm-linux-gnueabihf.tar.gz ff17434fcd14f9ae... d9bb279860f821c1...
*-arm64-apple-darwin-unsigned.dmg 95929d6681693a4b... 415d1d0746d3efe7...
*-arm64-apple-darwin-unsigned.tar.gz 49d4577d3fe36185... 7705f74ed09fda02...
*-arm64-apple-darwin.tar.gz ce830619a97fc8b1... 36b5b0f5eefa83e7...
*-powerpc64-linux-gnu-debug.tar.gz 73316fdf283e80d4... fdbc76d213de77bf...
*-powerpc64-linux-gnu.tar.gz 51d17f0c2c7556df... d0c643b98a4e33e0...
*-powerpc64le-linux-gnu-debug.tar.gz 30f4a57fe3c08447... 73eb219d8fdd70e3...
*-powerpc64le-linux-gnu.tar.gz d3f7428905b12631... 3c3c0b66da6b4834...
*-riscv64-linux-gnu-debug.tar.gz fc9c3bfb0504e492... 178c06b759c94068...
*-riscv64-linux-gnu.tar.gz f76cc6c165000c53... dbd2e348124e57b3...
*-win64-debug.zip dc35a8f460b1cc84... 57561cda911a48b0...
*-win64-setup-unsigned.exe 2f5c304373e484c2... dccfda1c308b1dea...
*-win64-unsigned.tar.gz 0fe0e8d4c360960b... b7fc0c201065be76...
*-win64.zip 058f90480e609ccf... ad62137ad723fea6...
*-x86_64-apple-darwin-unsigned.dmg fe68a0f51e9d7848... eb1751c32b308bb8...
*-x86_64-apple-darwin-unsigned.tar.gz 1b378dd7b8eaf7cc... 39578af729e2343e...
*-x86_64-apple-darwin.tar.gz be84b67d232762b8... 1c13cb3c39545c3b...
*-x86_64-linux-gnu-debug.tar.gz e8bcb1b8eddb0301... aeca931e85ef93b2...
*-x86_64-linux-gnu.tar.gz fc2873b230d81dd0... 6e9a272b7f1cebe7...
*.tar.gz 86900efe94aad628... 23ef0e05afed47c4...
guix_build.log 259fdcdb3312d661... 3bb6bd84ad8f22a0...
guix_build.log.diff ae51f16305ffb0c7...

achow101 added a commit to bitcoin-core/gui that referenced this pull request Jul 19, 2022
…to fix cross-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 #21194. Alternative to #25636. Initial discussion in bitcoin/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
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Jul 20, 2022
…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
dekm pushed a commit to unigrid-project/daemon that referenced this pull request Oct 27, 2022
… arm64)

54faac9 guix: Remove guix store paths from glibc (Andrew Chow)
1d4d711 guix: Map all guix store prefixes to /usr (Andrew Chow)

Pull request description:

  This cherry-picks two commits from bitcoin#24615, with minor edits. When building master, only the `x86_64-apple-darwin` build is reproducible across x86_64 and arm64. With these two changes we get x86_64 -> arm64 reproducibility for:
  * `powerpc64-linux-gnu`
  * `powerpc64le-linux-gnu`
  * `x86_64-apple-darwin`
  * `x86_64-linux-gnu`

  We can't compare `aarch64-linux-gnu`, because we can't currently build for `aarch64-linux-gnu` on `aarch64-linux-gnu`/`arm64`. See (bitcoin#22458).

  For all the other hosts, the reproducibility issues are known / being worked on (see discussion in bitcoin#24615). However there's no real reason to wait for those to be fixed before merging these changes, as it'd be great to have cross arch reproducibility just for `x86_64-linux-gnu`. I'm also unsure about the approach taken in that PR in regards to the libtool changes (and think there might even be a Guix bug involved).

  As I've added to the patch file, we may be able to drop these patches and use `--with-nonshared-cflags` when we are building newer versions of glibc.

  Guix Build (x86_64):
  ```bash
  1eadc59775a209e707539a6bdfe4c96e13a17f5373bfaf6477a65c1a44b2459d  guix-build-54faac968971/output/arm-linux-gnueabihf/SHA256SUMS.part
  1f424e448223a1e1ee1658efeb3bcc0d8b08a2a2bdc9d2dc779c931b956b527f  guix-build-54faac968971/output/arm-linux-gnueabihf/bitcoin-54faac968971-arm-linux-gnueabihf-debug.tar.gz
  212f55cf55dac34a3a6471bf0585f5ba1ed0a4801e9c0003961617881edb7ee7  guix-build-54faac968971/output/arm-linux-gnueabihf/bitcoin-54faac968971-arm-linux-gnueabihf.tar.gz
  f920fdc9407371be8fc5638a0f5ce2f1202889d820bda4451096d162b5d28d94  guix-build-54faac968971/output/arm64-apple-darwin/SHA256SUMS.part
  066098fe095a3dd46fa3c84e459aca1e8e4b3d564ab3f20a2542c8c46dd37b5a  guix-build-54faac968971/output/arm64-apple-darwin/bitcoin-54faac968971-arm64-apple-darwin-unsigned.dmg
  d2dc320975f8ec67595c274fcb7eda56c18ba72b905160537be97408cfdf1baf  guix-build-54faac968971/output/arm64-apple-darwin/bitcoin-54faac968971-arm64-apple-darwin-unsigned.tar.gz
  68013ac011ebac25e8ee2d2421266c66d1e20d309133eb6121ba89807e17fda5  guix-build-54faac968971/output/arm64-apple-darwin/bitcoin-54faac968971-arm64-apple-darwin.tar.gz
  d992dd9f50fec89e0bdf63e8e9352ebcd2b503424cb441f01c06074aa0b63b0e  guix-build-54faac968971/output/dist-archive/bitcoin-54faac968971.tar.gz
  e26ea298d15a87ce484afa59ca0c36ecfd173314b440e091cd93de11fe2dd91c  guix-build-54faac968971/output/powerpc64-linux-gnu/SHA256SUMS.part
  1a17091e7e515cc89a2e0a91a08ea0deb48847d5650be936f3365449002a59a5  guix-build-54faac968971/output/powerpc64-linux-gnu/bitcoin-54faac968971-powerpc64-linux-gnu-debug.tar.gz
  63ce21f6ee3a971a7a4533934ec559c727d2e3fc123fb65b2dec622168af76d5  guix-build-54faac968971/output/powerpc64-linux-gnu/bitcoin-54faac968971-powerpc64-linux-gnu.tar.gz
  267ff9d9ed3d8108033d676218399c4e56ba83eb30a3b4a6417cac8d1ce5e2f4  guix-build-54faac968971/output/powerpc64le-linux-gnu/SHA256SUMS.part
  a0db19b9829bd65067e2075c2d3e55065d03a4456a31ccb3ed8a70f7f3dcf1a0  guix-build-54faac968971/output/powerpc64le-linux-gnu/bitcoin-54faac968971-powerpc64le-linux-gnu-debug.tar.gz
  9971ba819854a77306358b31ddc2d21074b8cca57cfd8ce7f2ca83a1cc8f0a46  guix-build-54faac968971/output/powerpc64le-linux-gnu/bitcoin-54faac968971-powerpc64le-linux-gnu.tar.gz
  e18fe6d4db3048368db25846555a30ec97f71dcfdfcc3e86d7fe46c33c762a26  guix-build-54faac968971/output/riscv64-linux-gnu/SHA256SUMS.part
  4879fd332bee8570e6edfe5d0cbd3eea7df18f058ed25286aedb377858e27793  guix-build-54faac968971/output/riscv64-linux-gnu/bitcoin-54faac968971-riscv64-linux-gnu-debug.tar.gz
  470fafbab9d7328e172c658f58fd6f62f7890ce5d3dfe3bbfacd717b6d2c00f3  guix-build-54faac968971/output/riscv64-linux-gnu/bitcoin-54faac968971-riscv64-linux-gnu.tar.gz
  6b119a38b8ac1dd50e3cee69e8464ab21d624217cb3f50a1aef216e9ece27946  guix-build-54faac968971/output/x86_64-apple-darwin/SHA256SUMS.part
  afff2a8184007d6a3eaf7b6735417e7b9b404a801306c71f7d653907055d442c  guix-build-54faac968971/output/x86_64-apple-darwin/bitcoin-54faac968971-x86_64-apple-darwin-unsigned.dmg
  775298169fa45197f5b560e5581d6e3c021ed009487065f7e3a042914396b3cd  guix-build-54faac968971/output/x86_64-apple-darwin/bitcoin-54faac968971-x86_64-apple-darwin-unsigned.tar.gz
  51b0d2adae63aeca021621ec25278c202e82d8bc3ef5e7a9d2bfd93bd7a3fcab  guix-build-54faac968971/output/x86_64-apple-darwin/bitcoin-54faac968971-x86_64-apple-darwin.tar.gz
  ca9cd0083083ec1632a37396076fef638c00fed99efbb9e39521195867746301  guix-build-54faac968971/output/x86_64-linux-gnu/SHA256SUMS.part
  0e5a017bca3c0a2a466d230a470ec9c44b5d0bfd60d98f62a3a54f4cccb8cd23  guix-build-54faac968971/output/x86_64-linux-gnu/bitcoin-54faac968971-x86_64-linux-gnu-debug.tar.gz
  3b26566a553f17ccbcbf548675d0e8ce47a58a1e23c6b7c9792565117a223855  guix-build-54faac968971/output/x86_64-linux-gnu/bitcoin-54faac968971-x86_64-linux-gnu.tar.gz
  fa2f240f7bd7cfadfeb08188c044c8e34fd9c24785f4e2035c1256c3173c5589  guix-build-54faac968971/output/x86_64-w64-mingw32/SHA256SUMS.part
  0212ae95d100c9a4dbe062a14b49952279c91cbf352c786369320c3ed006c23a  guix-build-54faac968971/output/x86_64-w64-mingw32/bitcoin-54faac968971-win64-debug.zip
  750aa7c31cfa1bd5e0ae3f2ea52e526a73f1d3879b9f1a365967bbc317d4cca4  guix-build-54faac968971/output/x86_64-w64-mingw32/bitcoin-54faac968971-win64-setup-unsigned.exe
  f7bdda020d299df778fd68ad556d8124d87f7f9f0c4a77b62e05db20f5bbec2b  guix-build-54faac968971/output/x86_64-w64-mingw32/bitcoin-54faac968971-win64-unsigned.tar.gz
  d7f8b16634ceb95db3d28a024827a51f689dc0ab34ed40f205861bbc254f6206  guix-build-54faac968971/output/x86_64-w64-mingw32/bitcoin-54faac968971-win64.zip
  ```

  Guix Build (arm64):
  ```bash
  e4492294c284054e8378f8ac0c08b5d2efe5eeeec57ca12c3192da87a4dd4266  guix-build-54faac968971/output/arm-linux-gnueabihf/SHA256SUMS.part
  1f424e448223a1e1ee1658efeb3bcc0d8b08a2a2bdc9d2dc779c931b956b527f  guix-build-54faac968971/output/arm-linux-gnueabihf/bitcoin-54faac968971-arm-linux-gnueabihf-debug.tar.gz
  b2c454f589afea22d5126be14d1b9eb3aed7d99d59e50591db18c2cc3f190b23  guix-build-54faac968971/output/arm-linux-gnueabihf/bitcoin-54faac968971-arm-linux-gnueabihf.tar.gz
  575bbf78dd6002a7a5653277c24cd8d98471b6454e0801b558ac2a754788f2fa  guix-build-54faac968971/output/arm64-apple-darwin/SHA256SUMS.part
  03d8175e0db26b56fee757b307b8b519e4df0c639caa6afdfdea5ce7de63ecc4  guix-build-54faac968971/output/arm64-apple-darwin/bitcoin-54faac968971-arm64-apple-darwin-unsigned.dmg
  8ab4e3a65f09168b42c40ec736e507eb3e9b787d27a56db21a3c601e81d81262  guix-build-54faac968971/output/arm64-apple-darwin/bitcoin-54faac968971-arm64-apple-darwin-unsigned.tar.gz
  43024487cf0120a0a42aeba228f01f2a5303d2940d838f59106fa246a484662d  guix-build-54faac968971/output/arm64-apple-darwin/bitcoin-54faac968971-arm64-apple-darwin.tar.gz
  d992dd9f50fec89e0bdf63e8e9352ebcd2b503424cb441f01c06074aa0b63b0e  guix-build-54faac968971/output/dist-archive/bitcoin-54faac968971.tar.gz
  e26ea298d15a87ce484afa59ca0c36ecfd173314b440e091cd93de11fe2dd91c  guix-build-54faac968971/output/powerpc64-linux-gnu/SHA256SUMS.part
  1a17091e7e515cc89a2e0a91a08ea0deb48847d5650be936f3365449002a59a5  guix-build-54faac968971/output/powerpc64-linux-gnu/bitcoin-54faac968971-powerpc64-linux-gnu-debug.tar.gz
  63ce21f6ee3a971a7a4533934ec559c727d2e3fc123fb65b2dec622168af76d5  guix-build-54faac968971/output/powerpc64-linux-gnu/bitcoin-54faac968971-powerpc64-linux-gnu.tar.gz
  267ff9d9ed3d8108033d676218399c4e56ba83eb30a3b4a6417cac8d1ce5e2f4  guix-build-54faac968971/output/powerpc64le-linux-gnu/SHA256SUMS.part
  a0db19b9829bd65067e2075c2d3e55065d03a4456a31ccb3ed8a70f7f3dcf1a0  guix-build-54faac968971/output/powerpc64le-linux-gnu/bitcoin-54faac968971-powerpc64le-linux-gnu-debug.tar.gz
  9971ba819854a77306358b31ddc2d21074b8cca57cfd8ce7f2ca83a1cc8f0a46  guix-build-54faac968971/output/powerpc64le-linux-gnu/bitcoin-54faac968971-powerpc64le-linux-gnu.tar.gz
  603e09db23e20ee834cfdeaa58517fa6795779131f76c8e67c79ee4118043ba6  guix-build-54faac968971/output/riscv64-linux-gnu/SHA256SUMS.part
  4879fd332bee8570e6edfe5d0cbd3eea7df18f058ed25286aedb377858e27793  guix-build-54faac968971/output/riscv64-linux-gnu/bitcoin-54faac968971-riscv64-linux-gnu-debug.tar.gz
  aad8eb83730dbf079ee2c894e33ebf6df78e302500493b10e72a2aab9fa51b49  guix-build-54faac968971/output/riscv64-linux-gnu/bitcoin-54faac968971-riscv64-linux-gnu.tar.gz
  6b119a38b8ac1dd50e3cee69e8464ab21d624217cb3f50a1aef216e9ece27946  guix-build-54faac968971/output/x86_64-apple-darwin/SHA256SUMS.part
  afff2a8184007d6a3eaf7b6735417e7b9b404a801306c71f7d653907055d442c  guix-build-54faac968971/output/x86_64-apple-darwin/bitcoin-54faac968971-x86_64-apple-darwin-unsigned.dmg
  775298169fa45197f5b560e5581d6e3c021ed009487065f7e3a042914396b3cd  guix-build-54faac968971/output/x86_64-apple-darwin/bitcoin-54faac968971-x86_64-apple-darwin-unsigned.tar.gz
  51b0d2adae63aeca021621ec25278c202e82d8bc3ef5e7a9d2bfd93bd7a3fcab  guix-build-54faac968971/output/x86_64-apple-darwin/bitcoin-54faac968971-x86_64-apple-darwin.tar.gz
  ca9cd0083083ec1632a37396076fef638c00fed99efbb9e39521195867746301  guix-build-54faac968971/output/x86_64-linux-gnu/SHA256SUMS.part
  0e5a017bca3c0a2a466d230a470ec9c44b5d0bfd60d98f62a3a54f4cccb8cd23  guix-build-54faac968971/output/x86_64-linux-gnu/bitcoin-54faac968971-x86_64-linux-gnu-debug.tar.gz
  3b26566a553f17ccbcbf548675d0e8ce47a58a1e23c6b7c9792565117a223855  guix-build-54faac968971/output/x86_64-linux-gnu/bitcoin-54faac968971-x86_64-linux-gnu.tar.gz
  da10e58c2616b7d96fb00d24f34834b737b190c91bd533fc11130c5faf77d697  guix-build-54faac968971/output/x86_64-w64-mingw32/SHA256SUMS.part
  7b69ac09edb7795b61242d8b929808b7615e4011f1d312d495cc9410ded6c574  guix-build-54faac968971/output/x86_64-w64-mingw32/bitcoin-54faac968971-win64-debug.zip
  750aa7c31cfa1bd5e0ae3f2ea52e526a73f1d3879b9f1a365967bbc317d4cca4  guix-build-54faac968971/output/x86_64-w64-mingw32/bitcoin-54faac968971-win64-setup-unsigned.exe
  f7bdda020d299df778fd68ad556d8124d87f7f9f0c4a77b62e05db20f5bbec2b  guix-build-54faac968971/output/x86_64-w64-mingw32/bitcoin-54faac968971-win64-unsigned.tar.gz
  e90e9a7e86839cbbde7b17610b7fb6eb9a960703232d3b92040dce8df55861bd  guix-build-54faac968971/output/x86_64-w64-mingw32/bitcoin-54faac968971-win64.zip
  ```

ACKs for top commit:
  laanwj:
    ACK  54faac9

Tree-SHA512: 258e7de8e8df00995b6e952ef10d054ad127237265811eaafa537501be84459ae8f8f638618365d81e4eee8b7013db768b61c343d68e46d1d90a194bdc26b852
@bitcoin bitcoin locked and limited conversation to collaborators Jul 7, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants