web-dev-qa-db-fra.com

Différences entre arm64 et aarch64

J'ai deux appareils "déverrouillés", un iPad mini 3 et un Galaxy Edge 6, tous deux dotés d'un terminal et d'un ensemble minimaliste de commandes unix. Je pensais que les deux appareils ont des processeurs arm64 mais quand je courais

uname -a

sur les deux appareils, j'ai obtenu ce qui suit:

pour l'iPad mini 3:

xxxxs-iPad:/var/mobile root# uname -a
Darwin xxxx-iPad 14.0.0 Darwin Kernel Version 14.0.0: Wed Jun 24 00:50:15 PDT 2015; root:xnu-2784.30.7-30/RELEASE_ARM64_S5L8960X iPad4, **arm64**, J85mAP

pour le Samsung Galaxy s6 Edge:

u0_a203@zerolte:/ $ uname -a
Linux localhost 3.10.61-4497415 #1 SMP PREEMPT Thu Apr 9 15:06:40 KST 2015 **aarch64** GNU/Linux

Si je ne me trompe pas, la dernière information dans les deux cas, J85mAP et GNU/Linux, représente les firmwares, et les informations antépénultimes, arm64 et aarch64, désignent les processeurs.

Mes questions sont les suivantes: il est évident que les chaînes "arm64" et "aarch64" ne sont pas identiques, mais j'ai toujours pensé qu'arm64 et aarch64 étaient identiques. (Il est même dit quand vous mettez le tag arm64 à une question ici.)

Alors, sont-ils vraiment identiques?

Sur quoi dois-je m'inquiéter dans le cas de bibliothèques croisées pour les deux cibles? En fait, je pense à gcc 5.2.0, mais peut-être aussi à des versions plus basses. Puis-je simplement passer

-target=arm64

ou

-target=aarch64

en fonction de quel appareil je cible et juste m'inquiéter du reste des options à configurer?

EDIT Hum, cherchez-le à nouveau, sans succès.

Il semble que ARM64 ait été créé par Apple et AARCH64 par les autres, notamment les gars de GNU/GCC.

Après quelques recherches sur Google, j'ai trouvé ce lien:

les back-ends ARM64/AArch64 de LLVM ont fusionné

Il est donc logique que l'iPad s'appelle lui-même ARM64, car Apple utilise LLVM et Edge utilise AARCH64, comme Android utilise GNU Chaîne d'outils GCC.

42
pelotasplus

AArch64 est l'état 64 bits introduit dans l'architecture Armv8-A ( https://en.wikipedia.org/wiki/ARM_architecture#ARMv8-A ). L'état 32 bits qui est rétrocompatible avec Armv7-A et les architectures Arm 32 bits antérieures est appelé AArch32. Par conséquent, le triplet GNU pour le 64 bits ISA est a64]. La communauté du noyau Linux a choisi d'appeler son port du noyau à cette architecture arm64 plutôt qu'à aarch64. , c’est d’où une partie de l’utilisation d’arm64.

Autant que je sache, le backend Apple pour aarch64 s'appelait arm64, alors que le backend développé par la communauté LLVM s'appelait aarch64 (puisqu'il s'agit du nom canonique de l'ISA 64 bits), puis les deux. ont été fusionnés et le backend s’appelle maintenant aarch64.

Donc, aarch64 et arm64 font référence à la même chose.

30
Kyrill