Going thru the ARMv8 manual, I have the following questions to help understand the big picture.
Can legacy 32 bit app. (ARMv7 or earlier) run as is on the ARMv8 OS?
If the legacy applications need to be rebuilt for ARMv8 and assuming that I rebuild the application as 32 bit (Aarch32), does this need 32 bit OS underlying support? (It is interesting to know how the addressing mechanism works here.)
Please provide references wherever possible.
PS: I am targeting Linux OS with Aarch64 support (3.7 and later)
ARMv8 introduces the ability to perform execution with 64-bit wide registers, but provides mechanisms for backwards compatibility to enable existing ARMv7 software to be executed.
Guest. Android OS can run on both 32-bit and 64-bit processor architectures. If you have a phone running the 32-bit version, you basically can upgrade to the 64-bit version.
64-bit ones can run 64-bit apps and 32-bit - can't. But both 32- and 64-bit ARM processors cannot run apps for PC (for x86 or x86-64 processors) i.e. for typical Intel or AMD processors and vice versa. Special program (emulator) may provide cross-platform running but with significant loss of performance.
Aarch64 platform may run 32bit ARM but this compatibility is optional.
To run AArch32 binaries you need all libraries application would use in 32bit versions. Same as with i686 binaries on x86-64 systems.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With