Compiling on 32 bit?

I received a similar question from a couple of different groups.
Since everything is 64 bit now, how are people building for older 32 devices? Is it just that you are going out and finding old machines that had the 32 bit instruction set on them or just using RPis? (and sorry, we don’t have any eMAGs lying around the office, I’ve asked)

What do you use?

So what we do is, we run arm32bit VMs on amr64 hardware machines to build and bootstrap packages, the idea that the arm64 CPU needs to have the 32bit Instructions set, otherwise, things will be super slow. For applications, I am not sure, but I would guess cross compiling should work in this case

The good part is that 32-bit arm is slowly going away. In Fedora it is no longer supported since Fedora Linux 37 release.

Building on 64-bit arm, in a VM is the best solution nowadays. I remember discussions about booting 64-bit kernel with 32-bit userspace as well.

That’s fine for fedora, but there’s still people with devices running arm32 that it would be a damned shame to become ewaste. As it is, it’s becoming harder and harder to build 32 bit arm. Graviton, e.g., doesn’t support 32 bit extensions so we can’t even virtualize.

Sooner or later arm32 will land in “we only cross compile” camp. Like it was in armv4-v6 time.

More and more software requires more than 3GB of ram during build/link phase. And this looks like problem on 32-bit hardware. So distributions will start limit what can be built for 32-bit architecture and at some point it will be quite close to what embedded was 10-20 years ago.