←back to thread

126 points bundie | 1 comments | | HN request time: 0.205s | source
Show context
shirro ◴[] No.44460275[source]
Seems like a tough call for operating systems to do this when things are moving so fast. With risc-v its probably better to be future looking given current limitations but if a lower spec risc-v exploded in popularity you miss out.

Debian decided, probably very sensibly at the time, to set their minimum target for their 32 bit arm hardfloat distro to armv7. I guess hardly anyone used armv6 with hardware floating point apart from some obscure Broadcom chip. Then the original Raspberry Pi was released, moved an insane number of units, and Debian users would have been stuck with no hardware floating point. Fortunately Mike Thompson recompiled Debian for armv6 with hardfloat and that Debian fork (Raspbian) ended up becoming the basis for the official Raspberry Pi OS.

replies(3): >>44460738 #>>44463914 #>>44474962 #
saurik ◴[] No.44460738[source]
The original two generations of iPhone were armv6 with hardware floating point, so that always felt to me like the sane baseline. Android wasn't using hardware floating point on armv6, but I think that was only because the compilers they had sucked (an issue that didn't apply to Apple), and many/most of the devices in fact shipped with the same hardware. I dunno... like, I don't know exactly what went into Debian's decision there, but I could see it having been made for the wrong reasons: looking at what software had been deployed rather than what hardware was common?
replies(2): >>44460759 #>>44462555 #
1. pm215 ◴[] No.44462555[source]
I was there when people were building a cross distro consensus, and the discussion was as I recall basically about hardware. By definition the software deployed was built using the previous set of distro baselines, and this being Linux the assumption is that you just recompile from source. (There was also ongoing work in parallel to add inline neon asm implementations where needed for feature/performance parity with x86.)

Android and iOS were not relevant at all, since for Android targets Google were free to pick whatever compiler config they liked and Apple is its own thing, and neither group of phones was on the table as targets for Linux distros.

The driver behind picking armv7 was:

- clearly we need some new baseline that isn't the lowest common denominator, so we take advantage of the FPU

- distros don't have the resources to want to build for lots of targets at once

- armv7 will work for new hardware, and there's not that much armv6 stuff out there, so it can live with continuing to use the armv5 builds

- there do seem to be deployed chips with only VFPv3d16 and no Neon (notably the Tegra chips), so we will not require Neon, so they can also use the new baseline

It's just really unfortunate that the rpi chose a trailing edge CPU for essentially "we happened to have this" reasons and then it blew up to become a super popular board because they got the price point and the ecosystem support right.