android - arm64和aarch64的区别

标签 android ios gcc arm arm64

我有两个“解锁”设备,一个 iPad mini 3 和一个 Galaxy Edge 6,它们都配备了终端和一组简约的 unix 命令。我以为两个设备都有 arm64 处理器,但是当我运行时

uname -a

在两台设备上我都得到了以下信息:

适用于 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

适用于三星 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

如果我没记错的话,两种情况下的最后一个信息 J85mAP 和 GNU/Linux 代表固件,倒数第二个信息 arm64 和 aarch64 代表处理器。

我的问题如下:显然字符串“arm64”和“aarch64”不一样,但我一直认为arm64和aarch64是一样的。 (当你把 arm64 标签放到这里的问题上时,它甚至会被告知。)

那么,它们真的相同吗?

特别是,如果为两个目标交叉构建库,我应该担心什么?事实上,我想到的是 gcc 5.2.0,但也可能是更低的版本。我可以通过吗

-target=arm64

-target=aarch64

根据我的目标设备,只需担心要配置的其余选项?

EDIT 哼,再找这个,没有成功。

最佳答案

AArch64 是 Armv8-A 架构中引入的 64 位状态 (https://en.wikipedia.org/wiki/ARM_architecture#ARMv8-A)。向后兼容 Armv7-A 和以前的 32 位 Arm 架构的 32 位状态称为 AArch32。 因此 64 位 ISA 的 GNU 三元组是 aarch64。 Linux 内核社区选择将他们的内核端口称为此架构 arm64 而不是 aarch64,因此这就是一些 arm64 使用的来源。

据我所知,aarch64 的 Apple 后端称为 arm64,而 LLVM 社区开发的后端称为 aarch64(因为它是 64 位 ISA 的规范名称),后来两者合并,现在后端称为 aarch64。

所以 AArch64 和 ARM64 指的是同一个东西。

关于android - arm64和aarch64的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31851611/

相关文章:

java - Android 中的重叠按钮

android - Corona SDK 偏移不好

iphone - 以多个 NSString 作为参数的 Objective C 方法

c - 是否可以将链接器脚本符号地址作为 C 代码中的编译时间常量值?

android - RecyclerView 中类似寻呼机的行为

Android:除了 getLine1number() 之外,还有其他方法可以从 Android 设备获取 SIM 号码吗?

ios - NSRunLoop : Is it really idle between kCFRunLoopBeforeWaiting & kCFRunLoopAfterWaiting?

ios - -[NSDictionary dictionaryWithContentsOfFile] 在 iPad 上返回 nil;在模拟器中返回字典

c++ - 如何定义从何处加载库

c++ - 如何让 g++ 列出所有 #included 文件的路径