Stop shipping ARM32 builds for releases? #32375

issue laanwj openend this issue on April 29, 2025
  1. laanwj commented at 11:43 am on April 29, 2025: member

    Clearly there is no hurry here. This is more of a brainstorming issue than a proposal.

    For:

    • 64-bit ARM is the standard nowadays for the type of computing hardware our users tend to have (modern Raspberry Pi’s and ARM servers). While 32-bit ARM is only still used in low-power embedded systems, an unlikely combination with a bitcoin node.

    • 32-bit ARM is the last 32-bit architecture that we ship releases for. After removing this, we could fully focus on optimizing for large virtual address spaces. This means nearly-unrestricted mmap, and no need to worry about the virtual memory overhead of more thread stacks.

    • Is it still being properly tested at all? If no one really cares, things could break without us noticing.

    Against:

    • There are likely still users that use 2010-era ARM boxes for their nodes, though the number is likely to be dwindling (mine certainly died by now).

    • Requiring 64-bit even for self-built binaries is a step further, it might be wise to keep the 32-bit door open, at least i’m always hesitant with anything that limits potential hardware that can be used for bitcoin nodes.

      • OTOH we’d be in good company. Monero never supported 32-bit platforms for their node (because of using lmdb).

    See also bitcoin-core/bitcoincore.org#1126, where the default was recently changed to 64-bit.

  2. laanwj added the label Brainstorming on Apr 29, 2025
  3. laanwj added the label Linux/Unix on Apr 29, 2025
  4. achow101 commented at 5:11 pm on April 29, 2025: member
    IIRC, Raspberry Pi OS only started shipping 64-bit OSes a couple of years ago. For a while, you could buy a Pi 3 or 4 which had 64-bit hardware but the available Raspberry Pi OS image was only 32-bit. I would imagine that several of these machines are probably still in use. It also seems like the 32-bit images are still prominently shown on their website so I think it may be a bit premature to stop shipping 32-bit?
  5. willcl-ark commented at 9:56 am on April 30, 2025: member

    I think I heard that that the Pi 5 ARM chips are unable to boot a 32bit kernel (although you can still hack about in a 32 bit userspace if you really want), so it seems that the day is definitely getting nearer.

    If I am correct above the question then perhaps becomes “how long do we want to ship release builds for Pi 3’s and 4’s”.

  6. maflcko commented at 11:01 am on April 30, 2025: member
    If this is dropped in the future, I guess we’ll wholesale drop support for 32-bit architectures? If there is no release 32-bit build that we feel like is worth keeping, then I wonder if it is worth it to check and support it in CI.
  7. l0rinc commented at 11:49 am on April 30, 2025: contributor
    As mentioned before, 32 bit support isn’t tested as thoroughly as 64 (e.g. https://github.com/bitcoin/bitcoin/pull/28531/files#r2036954366), it would simplify a few scenarios if we didn’t have walk on eggshells when doing storage size calculations (e.g. https://github.com/bitcoin/bitcoin/blob/master/src/util/byte_units.h#L15)
  8. laanwj commented at 12:43 pm on April 30, 2025: member

    IIRC, Raspberry Pi OS only started shipping 64-bit OSes a couple of years ago. For a while, you could buy a Pi 3 or 4 which had 64-bit hardware but the available Raspberry Pi OS image was only 32-bit. I would imagine that several of these machines are probably still in use. It also seems like the 32-bit images are still prominently shown on their website so I think it may be a bit premature to stop shipping 32-bit?

    Agree, there’s no hurry.

    I think I heard that that the Pi 5 ARM chips are unable to boot a 32bit kernel (although you can still hack about in a 32 bit userspace if you really want), so it seems that the day is definitely getting nearer.

    Correct, it’s more complicated for ARM than for x86*, but broadly modern 64-bit SoCs don’t support 32-bit kernels. Most (but not all) do support 32-bit user-space, but there’s less compatibility legacy to warrant keeping even that circuitry.

    Performance-wise, using 32-bit applications on hardware that supports 64-bit ARM is a really bad idea, and should be discouraged.

    * See “AArch32” column here https://gpages.juszkiewicz.com.pl/arm-socs-table/arm-socs.html


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

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