Hacker News new | ask | show | jobs
by embrassingstuff 2178 days ago
How different are these ARM server implentations from each other ?

Will we need to recompile? Will it be almost-100%-binary-equivalent-with-some-hidden-bugs ?

1 comments

Ugh, yes; one of the perks of an Intel monoculture was that at least you only had one target to worry about, and inter-generational quirks were mostly limited to minor things. Now we have to deal with "this was optimized for (Intel|AMD) and doesn't work on (AMD|Intel)" and "the devs tested this on their x86 laptops and then it got weird when we went to run it on ARM" and "ARM is less of a platform and more of a collection of kinda-similar-looking systems that are mostly compatible". Don't get me wrong, I'll take this over a monoculture, especially an Intel monoculture, but there are some bumps on the road to a more diverse ecosystem.
In my experience, the Arm ecosystem has an excellent track record regarding compatibility across conforming implementations of the architectures (e.g., Armv7-A, ARMv8-A). I can draw a practical comparison to MIPS, where I had to deal with a lot of variability based on various vendor extensions. This is reflected in the "-march=" documentation for GCC:

MIPS: https://gcc.gnu.org/onlinedocs/gcc/MIPS-Options.html AArch64: https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html Arm: https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html

Yeah but we get to go out back and invent some new wheels for the portability tractor so that will be fun.