Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ARMv8 - Running legacy 32 bit Applications on 64 bit OS

Tags:

linux

arm

arm64

Going thru the ARMv8 manual, I have the following questions to help understand the big picture.

  1. Can legacy 32 bit app. (ARMv7 or earlier) run as is on the ARMv8 OS?

  2. 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)

like image 345
MS. Avatar asked Mar 17 '14 17:03

MS.


People also ask

Is ARMv8 backwards compatible?

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.

Is changing 64-bit ARMv8-A 32-bit mode to 64-bit mode possible?

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.

Can 64-bit ARM run 32-bit?

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.


1 Answers

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.

like image 195
Marcin Juszkiewicz Avatar answered Nov 03 '22 01:11

Marcin Juszkiewicz