fs: remove _POSIX_C_SOURCE defining #32460

pull fanquake wants to merge 1 commits into bitcoin:master from fanquake:posix_c_source changing 2 files +0 −18
  1. fanquake commented at 3:01 pm on May 9, 2025: member

    On Linux systems, _POSIX_C_SOURCE will default to 200809L (since glibc 2.10). There’s currently no reason for us to undefine it, and then set it to an earlier value. Also tested with musl libc.

    I think if anything, the project should be settings macros like _POSIX_C_SOURCE, globally.

  2. DrahtBot commented at 3:02 pm on May 9, 2025: contributor

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

    Code Coverage & Benchmarks

    For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/32460.

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    ACK hebasto
    Concept ACK laanwj

    If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

  3. laanwj commented at 3:59 pm on May 9, 2025: member

    From what I can tell, compilers on Linux systems, will be defining _GNU_SOURCE, which results in glibc defining _POSIX_C_SOURCE to 200809L; so undefining it, and setting it to an earlier value does not seem like the correct behaviour for us, or even required

    Yes, there is never a valid reason to set it to a lower value. The idea of the macro is to tell the header files “i know about POSIX version X and want to use it”.

    Usually this is defined by the build system, or at most at the top of specific implementation files, defining them in a header that’s included by other stuff is really strange. Edit: oh it’s defined in a cpp, that’s fine really. But unnecessary apparently otherwise this wouldn’t compile.

  4. laanwj added the label Utils/log/libs on May 9, 2025
  5. luke-jr commented at 11:54 am on May 14, 2025: member

    From what I can tell, compilers on Linux systems, will be defining _GNU_SOURCE

    _GNU_SOURCE isn’t supposed to ever be defined by default, and I don’t see us defining it anywhere…?

  6. laanwj commented at 7:59 am on May 15, 2025: member

    _GNU_SOURCE isn’t supposed to ever be defined by default, and I don’t see us defining it anywhere…?

    Not sure when it became that way, but it seems to be set by default, just compile anything using g++ (first thought was it related to C++ standard, but it isn’t):

    0#include <iostream>
    1
    2int main()
    3{
    4    std::cout << _GNU_SOURCE << std::endl;
    5    std::cout << _POSIX_C_SOURCE << std::endl;
    6    return 0;
    7}
    
    0$ g++ --version
    1g++ (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
    2$ g++ test.cpp  -o test
    3$ ./test
    41
    5200809
    

    One thing i’m not sure about is if this is true on all the BSDs.

    Then again, the removed code is explicitly __linux__ so that doesn’t matter for this PR.

  7. hebasto commented at 2:11 pm on May 16, 2025: member

    From what I can tell, compilers on Linux systems, will be defining _GNU_SOURCE

    _GNU_SOURCE isn’t supposed to ever be defined by default, and I don’t see us defining it anywhere…?

    Do we use GNU extensions?

  8. laanwj commented at 12:34 pm on May 19, 2025: member

    Do we use GNU extensions?

    No, we don’t.

  9. laanwj approved
  10. laanwj commented at 12:35 pm on May 19, 2025: member
    ACK 0574aeaf6608dc3e118a4d2c0613dab2097cf62e
  11. hebasto commented at 2:45 pm on May 19, 2025: member

    From what I can tell, compilers on Linux systems, will be defining _GNU_SOURCE

    Is this behaviour documented? If not, why rely on incidental behaviour that might change?

    … which results in glibc defining _POSIX_C_SOURCE to 200809L

    I don’t see any causality here: passing -U_GNU_SOURCE to an arbitrary compiler on my machine still results in _POSIX_C_SOURCE being set to 200809L.

  12. laanwj commented at 8:37 am on May 20, 2025: member

    i think _GNU_SOURCE is a bit of a red herring here. The point here is that modern versions of g++/glibc on Linux set _POSIX_SOURCE high enough by default to be able to use posix_fallocate (a POSIX function, not a GNU extension function) out of the box, so there’s no more reason to set it explicitly.

    i couldn’t find this behavior explicitly documented anywhere, but i’m sure a lot of software relies on that by now.

  13. hebasto commented at 8:46 am on May 20, 2025: member

    i think _GNU_SOURCE is a bit of a red herring here. The point here is that modern versions of g++/glibc on Linux set _POSIX_SOURCE high enough by default to be able to use posix_fallocate out of the box, so there’s no more reason to set it explicitly.

    Then maybe remove _GNU_SOURCE mentioning from the PR description?

  14. fanquake force-pushed on May 20, 2025
  15. hebasto approved
  16. hebasto commented at 1:24 pm on May 20, 2025: member
    ACK db895c0e38427ce73167ef325f5731a3c4805598.
  17. DrahtBot requested review from laanwj on May 20, 2025
  18. maflcko commented at 1:50 pm on May 20, 2025: member
    I wonder if there is a platform without posix_fallocate (outside of macos and windows). If not, the fallback can probably be fully removed, along with the detection and it can just be assumed to be always present?
  19. fanquake commented at 2:56 pm on May 20, 2025: member
     0181155a38912fab7e25d751d1f0281d7127ca8c309e2835bf0b109f30d425f91  guix-build-db895c0e3842/output/aarch64-linux-gnu/SHA256SUMS.part
     11b89a9dc265956572226b7a1558f8cb24c6f65f490c82382cbfba16500c91d9c  guix-build-db895c0e3842/output/aarch64-linux-gnu/bitcoin-db895c0e3842-aarch64-linux-gnu-debug.tar.gz
     27180be8208cfad61ba6fda74d10f942769a8e3c7cbd6a141b3d53e9905d1a76f  guix-build-db895c0e3842/output/aarch64-linux-gnu/bitcoin-db895c0e3842-aarch64-linux-gnu.tar.gz
     3459deb9325f13dc780a138e52e10f0a74b25f5dd605add338c451edf30af7715  guix-build-db895c0e3842/output/arm-linux-gnueabihf/SHA256SUMS.part
     4b7b3de67bce3cb28c5b2a68b37988eaf8972fecb2d74bd07c8c1205d4bbaed38  guix-build-db895c0e3842/output/arm-linux-gnueabihf/bitcoin-db895c0e3842-arm-linux-gnueabihf-debug.tar.gz
     5e2baf994c748e1a24450c4adb80862dbed82a89d2877c14657ff0642ac7c8014  guix-build-db895c0e3842/output/arm-linux-gnueabihf/bitcoin-db895c0e3842-arm-linux-gnueabihf.tar.gz
     67839b10062f0b19b1796655ac80579f2a8906b5818c986bee9f0f28cc899523c  guix-build-db895c0e3842/output/arm64-apple-darwin/SHA256SUMS.part
     75cef41bd838873b0cce491988bcab6538128d068406c454c06dced85d7f4e2a4  guix-build-db895c0e3842/output/arm64-apple-darwin/bitcoin-db895c0e3842-arm64-apple-darwin-codesigning.tar.gz
     8ef7c4cbe008ca853f52bf0ab72128bd8eef6f2d4d6cae7f453d7b3ca11d573c3  guix-build-db895c0e3842/output/arm64-apple-darwin/bitcoin-db895c0e3842-arm64-apple-darwin-unsigned.tar.gz
     93dcaa489a49b5dda2da4f70ca0fc0578a41c7e24b9026ed4207918193dca8436  guix-build-db895c0e3842/output/arm64-apple-darwin/bitcoin-db895c0e3842-arm64-apple-darwin-unsigned.zip
    103671cb5b704ffc507c9024b3f527912f7e9219f4abd337095cb4e4a0baf8976a  guix-build-db895c0e3842/output/dist-archive/bitcoin-db895c0e3842.tar.gz
    11174cd1ac3db45158bb343102d99ce30deffc37756b6c48796c1c4f9ead61e63d  guix-build-db895c0e3842/output/powerpc64-linux-gnu/SHA256SUMS.part
    12d04326d8ceb13e5d95b8d29215c561f17386d980630b006577356ed70762507d  guix-build-db895c0e3842/output/powerpc64-linux-gnu/bitcoin-db895c0e3842-powerpc64-linux-gnu-debug.tar.gz
    139ffbb172b614fbbd85fdc24259accb4a4d1aff17d53dbf26b78f58f757435822  guix-build-db895c0e3842/output/powerpc64-linux-gnu/bitcoin-db895c0e3842-powerpc64-linux-gnu.tar.gz
    14d6e49fde14b75441438debff249abf4671426ad50a294d35e9aba1f1ed8ceb4f  guix-build-db895c0e3842/output/riscv64-linux-gnu/SHA256SUMS.part
    15ca135608c2f22ddac41628eae67f9b1d26900bcf7b2a174009b448232eb5abee  guix-build-db895c0e3842/output/riscv64-linux-gnu/bitcoin-db895c0e3842-riscv64-linux-gnu-debug.tar.gz
    161fc2be48c765cfdc7fee7e5797a8f79d727fafd8fe94263f4afb1bd75de69802  guix-build-db895c0e3842/output/riscv64-linux-gnu/bitcoin-db895c0e3842-riscv64-linux-gnu.tar.gz
    17017cdb481967dab863d372e65dd653e1461476b30ee297b51898b568953d079b  guix-build-db895c0e3842/output/x86_64-apple-darwin/SHA256SUMS.part
    18c82480ada743741d9bb657771106b4343fe473c822303df8707e985c9b19e5e8  guix-build-db895c0e3842/output/x86_64-apple-darwin/bitcoin-db895c0e3842-x86_64-apple-darwin-codesigning.tar.gz
    19ea9863ef26db0dfcada4c9721d0a9ad9e1bf0971c95ebf911776261906a1f8fd  guix-build-db895c0e3842/output/x86_64-apple-darwin/bitcoin-db895c0e3842-x86_64-apple-darwin-unsigned.tar.gz
    2003857667e9819c765f0d872f61f34aa5a80ab70b0725751257d1a365c3131855  guix-build-db895c0e3842/output/x86_64-apple-darwin/bitcoin-db895c0e3842-x86_64-apple-darwin-unsigned.zip
    21921f171f605f9f2bd0c9dcdde3711cccf6fde0b4b82568f43a90df44ec976dda  guix-build-db895c0e3842/output/x86_64-linux-gnu/SHA256SUMS.part
    22dfff0064aadcf516e7d0b46d3203485fbd1d544e512c34fd90c857dc4078f64f  guix-build-db895c0e3842/output/x86_64-linux-gnu/bitcoin-db895c0e3842-x86_64-linux-gnu-debug.tar.gz
    234c33c698aca966e106760db4e7a64e585c323c09d548726e4c6d525832d1fbde  guix-build-db895c0e3842/output/x86_64-linux-gnu/bitcoin-db895c0e3842-x86_64-linux-gnu.tar.gz
    24064ef4fd2913d9023d24fd63fc55c19eaeb443798376272a863271b1578bd7f2  guix-build-db895c0e3842/output/x86_64-w64-mingw32/SHA256SUMS.part
    25504b0aa12c2f0c8dd66e145bd488cf27fd91be0db56e95ac5cb7b279bee3f506  guix-build-db895c0e3842/output/x86_64-w64-mingw32/bitcoin-db895c0e3842-win64-codesigning.tar.gz
    267dafb9075618cecacf14c2b8a6c59fa683719c8730d6958d7a659c66ce4fcd96  guix-build-db895c0e3842/output/x86_64-w64-mingw32/bitcoin-db895c0e3842-win64-debug.zip
    278d8f88b008b4a51541e9e6f6b7c5fc29035f2b263225ac8d8dfc51a043f861ad  guix-build-db895c0e3842/output/x86_64-w64-mingw32/bitcoin-db895c0e3842-win64-setup-unsigned.exe
    28f86084eabf4c2900d7f9732acd6847ac8627ea59e51d82a0c2d6c3a4b2d5c022  guix-build-db895c0e3842/output/x86_64-w64-mingw32/bitcoin-db895c0e3842-win64-unsigned.zip
    
  20. hebasto commented at 3:41 pm on May 20, 2025: member

    My Guix build:

     0aarch64
     1181155a38912fab7e25d751d1f0281d7127ca8c309e2835bf0b109f30d425f91  guix-build-db895c0e3842/output/aarch64-linux-gnu/SHA256SUMS.part
     21b89a9dc265956572226b7a1558f8cb24c6f65f490c82382cbfba16500c91d9c  guix-build-db895c0e3842/output/aarch64-linux-gnu/bitcoin-db895c0e3842-aarch64-linux-gnu-debug.tar.gz
     37180be8208cfad61ba6fda74d10f942769a8e3c7cbd6a141b3d53e9905d1a76f  guix-build-db895c0e3842/output/aarch64-linux-gnu/bitcoin-db895c0e3842-aarch64-linux-gnu.tar.gz
     4459deb9325f13dc780a138e52e10f0a74b25f5dd605add338c451edf30af7715  guix-build-db895c0e3842/output/arm-linux-gnueabihf/SHA256SUMS.part
     5b7b3de67bce3cb28c5b2a68b37988eaf8972fecb2d74bd07c8c1205d4bbaed38  guix-build-db895c0e3842/output/arm-linux-gnueabihf/bitcoin-db895c0e3842-arm-linux-gnueabihf-debug.tar.gz
     6e2baf994c748e1a24450c4adb80862dbed82a89d2877c14657ff0642ac7c8014  guix-build-db895c0e3842/output/arm-linux-gnueabihf/bitcoin-db895c0e3842-arm-linux-gnueabihf.tar.gz
     77839b10062f0b19b1796655ac80579f2a8906b5818c986bee9f0f28cc899523c  guix-build-db895c0e3842/output/arm64-apple-darwin/SHA256SUMS.part
     85cef41bd838873b0cce491988bcab6538128d068406c454c06dced85d7f4e2a4  guix-build-db895c0e3842/output/arm64-apple-darwin/bitcoin-db895c0e3842-arm64-apple-darwin-codesigning.tar.gz
     9ef7c4cbe008ca853f52bf0ab72128bd8eef6f2d4d6cae7f453d7b3ca11d573c3  guix-build-db895c0e3842/output/arm64-apple-darwin/bitcoin-db895c0e3842-arm64-apple-darwin-unsigned.tar.gz
    103dcaa489a49b5dda2da4f70ca0fc0578a41c7e24b9026ed4207918193dca8436  guix-build-db895c0e3842/output/arm64-apple-darwin/bitcoin-db895c0e3842-arm64-apple-darwin-unsigned.zip
    113671cb5b704ffc507c9024b3f527912f7e9219f4abd337095cb4e4a0baf8976a  guix-build-db895c0e3842/output/dist-archive/bitcoin-db895c0e3842.tar.gz
    12174cd1ac3db45158bb343102d99ce30deffc37756b6c48796c1c4f9ead61e63d  guix-build-db895c0e3842/output/powerpc64-linux-gnu/SHA256SUMS.part
    13d04326d8ceb13e5d95b8d29215c561f17386d980630b006577356ed70762507d  guix-build-db895c0e3842/output/powerpc64-linux-gnu/bitcoin-db895c0e3842-powerpc64-linux-gnu-debug.tar.gz
    149ffbb172b614fbbd85fdc24259accb4a4d1aff17d53dbf26b78f58f757435822  guix-build-db895c0e3842/output/powerpc64-linux-gnu/bitcoin-db895c0e3842-powerpc64-linux-gnu.tar.gz
    15d6e49fde14b75441438debff249abf4671426ad50a294d35e9aba1f1ed8ceb4f  guix-build-db895c0e3842/output/riscv64-linux-gnu/SHA256SUMS.part
    16ca135608c2f22ddac41628eae67f9b1d26900bcf7b2a174009b448232eb5abee  guix-build-db895c0e3842/output/riscv64-linux-gnu/bitcoin-db895c0e3842-riscv64-linux-gnu-debug.tar.gz
    171fc2be48c765cfdc7fee7e5797a8f79d727fafd8fe94263f4afb1bd75de69802  guix-build-db895c0e3842/output/riscv64-linux-gnu/bitcoin-db895c0e3842-riscv64-linux-gnu.tar.gz
    18017cdb481967dab863d372e65dd653e1461476b30ee297b51898b568953d079b  guix-build-db895c0e3842/output/x86_64-apple-darwin/SHA256SUMS.part
    19c82480ada743741d9bb657771106b4343fe473c822303df8707e985c9b19e5e8  guix-build-db895c0e3842/output/x86_64-apple-darwin/bitcoin-db895c0e3842-x86_64-apple-darwin-codesigning.tar.gz
    20ea9863ef26db0dfcada4c9721d0a9ad9e1bf0971c95ebf911776261906a1f8fd  guix-build-db895c0e3842/output/x86_64-apple-darwin/bitcoin-db895c0e3842-x86_64-apple-darwin-unsigned.tar.gz
    2103857667e9819c765f0d872f61f34aa5a80ab70b0725751257d1a365c3131855  guix-build-db895c0e3842/output/x86_64-apple-darwin/bitcoin-db895c0e3842-x86_64-apple-darwin-unsigned.zip
    22921f171f605f9f2bd0c9dcdde3711cccf6fde0b4b82568f43a90df44ec976dda  guix-build-db895c0e3842/output/x86_64-linux-gnu/SHA256SUMS.part
    23dfff0064aadcf516e7d0b46d3203485fbd1d544e512c34fd90c857dc4078f64f  guix-build-db895c0e3842/output/x86_64-linux-gnu/bitcoin-db895c0e3842-x86_64-linux-gnu-debug.tar.gz
    244c33c698aca966e106760db4e7a64e585c323c09d548726e4c6d525832d1fbde  guix-build-db895c0e3842/output/x86_64-linux-gnu/bitcoin-db895c0e3842-x86_64-linux-gnu.tar.gz
    25064ef4fd2913d9023d24fd63fc55c19eaeb443798376272a863271b1578bd7f2  guix-build-db895c0e3842/output/x86_64-w64-mingw32/SHA256SUMS.part
    26504b0aa12c2f0c8dd66e145bd488cf27fd91be0db56e95ac5cb7b279bee3f506  guix-build-db895c0e3842/output/x86_64-w64-mingw32/bitcoin-db895c0e3842-win64-codesigning.tar.gz
    277dafb9075618cecacf14c2b8a6c59fa683719c8730d6958d7a659c66ce4fcd96  guix-build-db895c0e3842/output/x86_64-w64-mingw32/bitcoin-db895c0e3842-win64-debug.zip
    288d8f88b008b4a51541e9e6f6b7c5fc29035f2b263225ac8d8dfc51a043f861ad  guix-build-db895c0e3842/output/x86_64-w64-mingw32/bitcoin-db895c0e3842-win64-setup-unsigned.exe
    29f86084eabf4c2900d7f9732acd6847ac8627ea59e51d82a0c2d6c3a4b2d5c022  guix-build-db895c0e3842/output/x86_64-w64-mingw32/bitcoin-db895c0e3842-win64-unsigned.zip
    
  21. maflcko commented at 8:05 am on May 21, 2025: member

    I wonder if there is a platform without posix_fallocate (outside of macos and windows). If not, the fallback can probably be fully removed, along with the detection and it can just be assumed to be always present?

    I am asking, because the fallback was just the normal code in the beginning (bba89aa82a80f0373dcb7288d96d5b0fcb453d73) and was not removed in 288fdc092aff9d7e0cea159196b2e96044a786c7.

    However, even bioniC has posix_fallocate since API level 21 (https://android.googlesource.com/platform/bionic/+/master/docs/status.md). And the other slimmer libcs may not have ftruncate (https://www.sourceware.org/newlib/libc.html), so they can’t be used anyway. (I haven’t checked if https://www.fefe.de/dietlibc/exports or uClibc or klibc can be used, but if there is no mention of them and no steps to reproduce or a CI task, then I wonder why we should consider them supported)

    Removing the fallback would make review easier here, because if the code compiles, it is more likely to be correct.

  22. maflcko commented at 8:15 am on May 21, 2025: member

    And the other slimmer libcs may not have ftruncate (https://www.sourceware.org/newlib/libc.html), so they can’t be used anyway.

    Actually, it is used in #31425, so I wonder how that compiles and links. I guess it will start failing once more than a trivial dummy code is linked.

  23. laanwj commented at 11:12 am on May 21, 2025: member

    Removing the fallback would make review easier here, because if the code compiles, it is more likely to be correct.

    Oof. That is a good point. i hadn’t realized that the detection will just make this compile even if posix_fallocate doesn’t end up being available, so it might result in a hidden performance regression instead of just a compile error.

    Scrapping my ACK for now, sorry.

  24. fanquake force-pushed on May 21, 2025
  25. fanquake commented at 11:57 am on May 21, 2025: member
    I’ve added another commit (that can be squashed), dropping the fallback.
  26. in src/util/fs_helpers.cpp:206 in d400536a8d outdated
    199@@ -211,24 +200,8 @@ void AllocateFileRange(FILE* file, unsigned int offset, unsigned int length)
    200     }
    201     ftruncate(fileno(file), static_cast<off_t>(offset) + length);
    202 #else
    203-#if defined(HAVE_POSIX_FALLOCATE)
    204-    // Version using posix_fallocate
    205     off_t nEndPos = (off_t)offset + length;
    206     if (0 == posix_fallocate(fileno(file), 0, nEndPos)) return;
    


    laanwj commented at 12:38 pm on May 21, 2025:
    Maybe (void)posix_fallocate(fileno(file), 0, nEndPos) to make ignoring the return value explicit.
  27. laanwj commented at 12:45 pm on May 21, 2025: member
    OpenBSD (as of 7.4): has no posix_fallocate, but does have ftruncate https://github.com/PointCloudLibrary/pcl/pull/5957/files FreeBSD (as of 8.3): has posix_fallocate: https://man.freebsd.org/cgi/man.cgi?query=posix_fallocate&sektion=2&manpath=FreeBSD+8.3-RELEASE NetBSD (as of 7.0): has it : https://man.netbsd.org/NetBSD-7.0/posix_fallocate.2
  28. maflcko commented at 2:39 pm on May 21, 2025: member

    so it might result in a hidden performance regression instead of just a compile error.

    I’d guess on modern, fast storage this doesn’t make a visible difference. (Would be good to double check)

    Then, given that the fallback seems to be needed by OpenBSD and newlibc (possibly others), it may be better to keep it?

    Ref: https://github.com/hebasto/bitcoin-core-nightly/actions/runs/15163923250/job/42638498492?pr=54#step:6:361 (OpenBSD 7.7):

    0src/util/fs_helpers.cpp:204:14: error: use of undeclared identifier 'posix_fallocate'
    1    if (0 == posix_fallocate(fileno(file), 0, nEndPos)) return;
    2             ^
    31 error generated.
    
  29. fs: remove _POSIX_C_SOURCE defining
    On Linux systems, `_POSIX_C_SOURCE` will default to `200809L` (since
    glibc 2.10). There's currently no reason for us to undefine it, and then
    set it to an earlier value. Also tested with musl libc.
    
    I think if anything, the project should be settings macros like
    `_POSIX_C_SOURCE`, globally.
    24e5fd3bed
  30. fanquake force-pushed on May 21, 2025
  31. fanquake commented at 3:00 pm on May 21, 2025: member
    Reverted to the prior change, given we cannot assume availablility.
  32. hebasto approved
  33. hebasto commented at 3:57 pm on May 21, 2025: member
    re-ACK 24e5fd3bedcebacbc10f0449be61be636b77dd79, only rebased since my recent review.
  34. DrahtBot requested review from laanwj on May 21, 2025
  35. DrahtBot added the label CI failed on May 21, 2025
  36. laanwj commented at 9:47 pm on May 21, 2025: member

    Then, given that the fallback seems to be needed by OpenBSD and newlibc (possibly others), it may be better to keep it?

    It would be even better to use ftruncate on openbsd. But yes, simply assuming posix_fallocate availability is going to fail on some platforms.

  37. fanquake commented at 8:39 am on May 22, 2025: member

    It would be even better to use ftruncate on openbsd.

    I haven’t got anything OpenBSD handy to test on, but happy for someone to followup with these changes.

  38. DrahtBot removed the label CI failed on May 23, 2025
  39. fanquake commented at 11:56 am on May 23, 2025: member

    Guix Build:

     047df12bafda434889c080ec544817f1058d95dda7d79889ea59bcc42084d73e5  guix-build-24e5fd3bedce/output/aarch64-linux-gnu/SHA256SUMS.part
     1b0cd4b29b7d3c3d3858aeb3496e7f7c0b0910f6bcaa3c76d537053a2f6e96f2f  guix-build-24e5fd3bedce/output/aarch64-linux-gnu/bitcoin-24e5fd3bedce-aarch64-linux-gnu-debug.tar.gz
     23d3228c719e4a7df4cd83c2b2d46c6ffd072d331b83cf5f70b938cc976908b91  guix-build-24e5fd3bedce/output/aarch64-linux-gnu/bitcoin-24e5fd3bedce-aarch64-linux-gnu.tar.gz
     390ed4ba3126cc7f1303349157b6c5726754886ad3d58e5984cabdd3b56f13fe7  guix-build-24e5fd3bedce/output/arm-linux-gnueabihf/SHA256SUMS.part
     475ee77e4c415365a6d6efcd03a6bbac940d21f9d8d382b2cb5beff9d4d854e52  guix-build-24e5fd3bedce/output/arm-linux-gnueabihf/bitcoin-24e5fd3bedce-arm-linux-gnueabihf-debug.tar.gz
     59910f6c8a9d580ebc600481443daeece44b33b5ce9daaca30c35cc9346ec63ee  guix-build-24e5fd3bedce/output/arm-linux-gnueabihf/bitcoin-24e5fd3bedce-arm-linux-gnueabihf.tar.gz
     63fc23e357013d976eab0070e630db2ee224f93da521465337c9e3d6efd45ac4c  guix-build-24e5fd3bedce/output/arm64-apple-darwin/SHA256SUMS.part
     70a09c0152fb4a7929ceb2a65d0571b6f4c90a9244d223d52be6373309407d14c  guix-build-24e5fd3bedce/output/arm64-apple-darwin/bitcoin-24e5fd3bedce-arm64-apple-darwin-codesigning.tar.gz
     881f4758b4ada539c1a0173e6a3e1d9cf84db1daf471e8d5940cb40d3d9a029c8  guix-build-24e5fd3bedce/output/arm64-apple-darwin/bitcoin-24e5fd3bedce-arm64-apple-darwin-unsigned.tar.gz
     973d643e121c51d517d0b4ddff4c13b983b3be30c80cd9f5472d9eff447c545f8  guix-build-24e5fd3bedce/output/arm64-apple-darwin/bitcoin-24e5fd3bedce-arm64-apple-darwin-unsigned.zip
    1034987d6c9221ec5f4e6b696b578135a33a626e016ee1f752b0f679daf5c1b21b  guix-build-24e5fd3bedce/output/dist-archive/bitcoin-24e5fd3bedce.tar.gz
    11ab671513a4fa9b103207844f303d01f82e8dfe55283d9c2a7e0190bccfccdc0a  guix-build-24e5fd3bedce/output/powerpc64-linux-gnu/SHA256SUMS.part
    12b8f698679e8bfd155d860e74ed3418fb61e6573c4140e92e205c994d10a1ef74  guix-build-24e5fd3bedce/output/powerpc64-linux-gnu/bitcoin-24e5fd3bedce-powerpc64-linux-gnu-debug.tar.gz
    13661ef960766343025bef350e5257e04be7f64094f4dc3c394ab79ea323e6195f  guix-build-24e5fd3bedce/output/powerpc64-linux-gnu/bitcoin-24e5fd3bedce-powerpc64-linux-gnu.tar.gz
    14078b492471d37445654984b5fb3b899dd943c86afd3805e442efae663f574825  guix-build-24e5fd3bedce/output/riscv64-linux-gnu/SHA256SUMS.part
    15c2ba3a4d3d453fb4b6d8c78eea2347020535d6292e7f0cb02670b75772a0e689  guix-build-24e5fd3bedce/output/riscv64-linux-gnu/bitcoin-24e5fd3bedce-riscv64-linux-gnu-debug.tar.gz
    16bf31ddb905b28c107925f48596c7095beb33dba4a0b581b5aa60fc2b229f7ce2  guix-build-24e5fd3bedce/output/riscv64-linux-gnu/bitcoin-24e5fd3bedce-riscv64-linux-gnu.tar.gz
    17aa4f349ec05075f25b81d056a82a90e076a8f5cdf17afd10f6f82e76b2fdbd4f  guix-build-24e5fd3bedce/output/x86_64-apple-darwin/SHA256SUMS.part
    18013d060dd2eea16ae8bb6babd405f041b4e4b9d4c352a10fea15436c200f8f57  guix-build-24e5fd3bedce/output/x86_64-apple-darwin/bitcoin-24e5fd3bedce-x86_64-apple-darwin-codesigning.tar.gz
    19848b37f75fc7697004429ef6d15378d576e069ca23f633b7ca97b4f349739dbb  guix-build-24e5fd3bedce/output/x86_64-apple-darwin/bitcoin-24e5fd3bedce-x86_64-apple-darwin-unsigned.tar.gz
    20ce5d3d6b7e58eec90e4621b8265d38cc7ff0b31407f7f6e1583387d42a644eac  guix-build-24e5fd3bedce/output/x86_64-apple-darwin/bitcoin-24e5fd3bedce-x86_64-apple-darwin-unsigned.zip
    216149db8c0a68cd027013f1fb327e2b4f4d7a93ea869c5ab49576ce5d2b01c85c  guix-build-24e5fd3bedce/output/x86_64-linux-gnu/SHA256SUMS.part
    22610ba0a57828531b3e0856210c5b49bcdb06c560c1cf3fe783b019ca8c28a842  guix-build-24e5fd3bedce/output/x86_64-linux-gnu/bitcoin-24e5fd3bedce-x86_64-linux-gnu-debug.tar.gz
    239d0a19593a5be14146cf6a3f05c47b2b076692564c17e0d53f4ebd829385e33b  guix-build-24e5fd3bedce/output/x86_64-linux-gnu/bitcoin-24e5fd3bedce-x86_64-linux-gnu.tar.gz
    24255590ea9640df05ade8de0fd388470b87d843a6bad46c6076c98900a05d6322  guix-build-24e5fd3bedce/output/x86_64-w64-mingw32/SHA256SUMS.part
    25a1f7bca2a997a41b82a647ee191945356cf15cb6864c99a0b286bf04742339c1  guix-build-24e5fd3bedce/output/x86_64-w64-mingw32/bitcoin-24e5fd3bedce-win64-codesigning.tar.gz
    265a11a0453a955db8a2af16497013931f9bb16497a2be9ddbcf94bacf3b573733  guix-build-24e5fd3bedce/output/x86_64-w64-mingw32/bitcoin-24e5fd3bedce-win64-debug.zip
    27ca092bef409b786918cbf1bc333aee7c0d12581382560a678d60478c9b46794c  guix-build-24e5fd3bedce/output/x86_64-w64-mingw32/bitcoin-24e5fd3bedce-win64-setup-unsigned.exe
    28bd766eeeaf63823bc675ee25b5b41baefe08564e46e6e37b62bf14e20b3eb3e9  guix-build-24e5fd3bedce/output/x86_64-w64-mingw32/bitcoin-24e5fd3bedce-win64-unsigned.zip
    

github-metadata-mirror

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: 2025-05-23 21:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me