Future of 32-bit platform support in FreeBSD

FreeBSD’s plan to end support for 32‑bit platforms in version 16 highlights a broader industry shift toward 64‑bit‑only systems across operating systems and CPU architectures. Commenters weigh the practical benefits of dropping 32‑bit—simpler maintenance, better security, and alignment with modern hardware—against the costs for legacy, proprietary, and embedded software that still depends on 32‑bit runtimes. Some point to projects like NetBSD and certain embedded Linux variants as likely refuges for aging hardware, while others argue that 32‑bit Unix‑like systems are increasingly a niche best served by specialized or real‑time OSes.

Status of 32‑bit support in major systems

  • Fedora has been systematically deprecating i686 kernels and packages; many new packages don’t even build on i686 anymore.
  • Ubuntu has largely dropped 32‑bit, keeping only a minimal set of libs for Steam/Wine.
  • Debian is migrating 32‑bit to 64‑bit time but warns i686 might be dropped soon.
  • FreeBSD 16 will not support 32‑bit platforms, but 32‑bit binaries remain supported on 64‑bit kernels (no plan to drop that yet).
  • OpenBSD already treats i386 as low‑priority (only easy/critical fixes). Future there is unclear.
  • NetBSD is widely seen as the long‑term home for 32‑bit/legacy hardware.

Practical impact on software and libraries

  • Legacy proprietary 32‑bit apps and Wine‑related libs are still a pain point; removing 32‑bit libs can simply break them.
  • Some maintainers find new software assumes 64‑bit and won’t fix 32‑bit build issues.
  • Testing 32‑bit is increasingly hard because modern distros don’t ship full 32‑bit stacks; people resort to old VMs.

Portability, UB, and C type‑size debates

  • Repeated issues: wrong assumptions about long/size_t size and casting pointers to long instead of uintptr_t.
  • Some argue this is just bad C, independent of 32‑ vs 64‑bit, and should be fixed as UB/portability bugs.
  • Others push back: fixing for theoretical platforms has real cost and little current benefit; many projects deliberately optimize for mainstream 64‑bit Unix.
  • There’s support for preferring size_t/uint32_t/uint64_t (C99 types) over int/long, and even the idea of deprecating legacy integer types.

CPU architecture and boot‑mode trends

  • Intel’s proposed x86‑S and newer ARM Cortex‑A designs are dropping 16/32‑bit boot modes; some ARM cores already can’t run 32‑bit apps at all.
  • Apple removed 32‑bit app support early; current hardware doesn’t support 32‑bit Mac code, but there’s a minimal 32‑bit facility in Rosetta for things like Wine.
  • Some see it as overdue that x86 should start directly in long mode; others caution that not literally “everyone” only needs 64‑bit.

Wine, time_t, and Y2038

  • Wine is moving toward a model where 32‑bit apps call 64‑bit libraries, which could let distros drop most 32‑bit libs.
  • The Year‑2038 problem adds pressure: 32‑bit time on 32‑bit systems is another major migration burden; FreeBSD already uses 64‑bit time_t everywhere except i386.

Embedded and long‑tail systems

  • Concern: rapid 32‑bit deprecation may hurt embedded Unix use.
  • One side: for serious embedded work, RTOS or bare metal are better; 32‑bit Unix is overkill and obsolete, and cheap 64‑bit SoCs (e.g., Cortex‑A55 class) are widely available.
  • Counterpoint: lots of “fat” embedded (routers, security devices, RPi‑class boards) still run 32‑bit Linux; 32‑bit Linux will likely persist there for a long time.
  • Some suggest treating 32‑bit Unix in the future like 8/16‑bit today: niche, bespoke, not a target for generic portable software.

BSD ecosystem roles and sentiment

  • FreeBSD is seen as increasingly focused on server‑class 64‑bit hardware; 32‑bit was never very strong in its embedded story.
  • NetBSD is viewed as the “legacy hardware” refuge and a complementary niche to FreeBSD.
  • OpenBSD and multi‑arch support are praised for catching non‑portable assumptions (endianness, alignment, 32/64‑bit).
  • Several participants express nostalgia and a sense of aging as 32‑bit support is retired.