arm64とaarch64の違い


86

私は2つの「ロック解除された」デバイス、iPad mini3とGalaxyEdge 6を持っており、どちらも端末と​​最小限のUNIXコマンドのセットを備えています。両方のデバイスにarm64プロセッサがあると思いましたが、実行すると

両方のデバイスで、次のようになりました。

iPad mini 3の場合:

サムスンギャラクシーs6エッジの場合:

私が間違っていなければ、どちらの場合も最後の情報であるJ85mAPとGNU / Linuxはファームウェアを表し、最後から2番目の情報であるarm64とaarch64はプロセッサを表します。

私の質問は次のとおりです。文字列「arm64」と「aarch64」は同じではありませんが、arm64とaarch64は同じだといつも思っていました。(ここでarm64タグを質問に付けたときにも通知されます。)

それで、それらは本当に同一ですか?

特に、両方のターゲットのライブラリをクロスビルドする場合、何を心配する必要がありますか?実際、私はgcc 5.2.0を念頭に置いていますが、それよりも低いバージョンも考えています。合格できますか

または

どのデバイスをターゲットにして、残りの構成オプションについて心配するだけですか?

編集ハム、成功せずにこれをもう一度探してください。

回答:


67

AArch64は、Armv8-Aアーキテクチャ(https://en.wikipedia.org/wiki/ARM_architecture#ARMv8-A)で導入された64ビットの状態です。Armv7-Aおよび以前の32ビットArmアーキテクチャと下位互換性のある32ビット状態はAArch32と呼ばれます。したがって、64ビットISAのGNUトリプレットはaarch64です。Linuxカーネルコミュニティは、カーネルのポートをaarch64ではなくこのアーキテクチャarm64に呼び出すことを選択したため、arm64の使用法の一部はそこから来ています。

私の知る限り、aarch64のAppleバックエンドはarm64と呼ばれていましたが、LLVMコミュニティで開発されたバックエンドはaarch64と呼ばれ(64ビットISAの正規名であるため)、後で2つがマージされ、バックエンドはaarch64と呼ばれるようになりました。 。

したがって、AArch64とARM64は同じものを参照します。


57

ARM64はAppleによって作成され、AARCH64は他の人、特にGNU / GCCの人によって作成されたようです。

いくつかグーグルした後、私はこのリンクを見つけました:

LLVM64ビットARM64 / AArch64バックエンドが統合されました

つまり、AppleがLLVMを使用しているため、iPadはそれ自体をARM64と呼び、AndroidはGNU GCCツールチェーンを使用しているため、EdgeはAARCH64を使用します。


この答えのためのThx。したがって、少なくとも理論的には、mac osまたはubuntuからipadまたはedgeにgccをクロスコンパイルする場合、arm64とaarch64の1つであれば、configureスクリプトに渡される-targetオプションについて心配する必要はありません。
オロリン2015

6
上記の情報に追加する新しいものは何もありませんが、events.linuxfoundation.org / images / stories / pdf /のスライド10を強調したいと思います…-LinuxカーネルがARM64の名前でAARCH64を参照する方法を強調しています。したがって、Linuxカーネルヘッダーのサポートを必要とするバイナリのクロスビルドでは、ターゲットが「aarch64」であっても、おそらくARCH = arm64が正しいでしょう。
シュレイ2015

3
あなたの答えは正しいです。そのARM64 / AArch64マージのclangへの コミットは非常に簡単です。arm64とaarch64は、ほとんどの目的で同義語のように見えます。
ガブリエルペアレント
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.