1

A .so file is compiled for the ARMV7 (rPi2) architecture. Is the rPi3 (ARM8) architecture so different that the .so file must be recompiled?

The Raspberry Pi 2 uses a Broadcom BCM2836 SoC with a 900 MHz 32-bit quad-core ARM Cortex-A7 processor (as do many current smartphones), with 256 KB shared L2 cache.[13]

The Raspberry Pi 3 uses a Broadcom BCM2837 SoC with a 1.2 GHz 64-bit quad-core ARM Cortex-A53 processor, with 512 KB shared L2 cache.

https://en.wikipedia.org/wiki/Raspberry_Pi#Processor

1 Answer 1

2

Is the rPi3 (ARM8) architecture so different that the .so file must be recompiled?

No, in fact there's only one version of the Raspbian userland, compiled for ARMv6 so it will work on single core models, but it also works on the Pi 2 and 3, which only require a different kernel.

When the Pi 2 first came out, there was some discussion of how worthwhile it would be, performance wise, to use a pure ARMv7 distro (which were commonplace before the 2 existed, hence there is large pile of them available for the Pi) instead. However, to my knowledge no one has actually demonstrated this to be the case, possibly because the variant of ARMv6 used on the BCM2835 is not many steps removed from the ARMv7 implementation used with the BCM2836.

The reason all this is okay is that ARMv6/7/8 are backward compatible, meaning binaries made for v6 will work on v7 and v8 -- but something compiled specifically for ARMv8 will not work on v7 or v6. This is also why all those ARMv7 distros only work on the model 2 and 3.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.