我有两台“未锁定”的设备,一台 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
or
-target=aarch64
根据我的目标设备,只关心其余的配置选项?
EDIT嗯,再找这个,没有成功。
“AArch64”和“ARM64”指的是同一件事。
AArch64 是 64 位状态中引入的Armv8-A架构 https://en.wikipedia.org/wiki/ARM_architecture_family#Armv8-A。向后兼容 Armv7-A 和之前的 32 位 Arm 架构的 32 位状态称为 AArch32。
因此,64 位 ISA 的 GNU 三元组是 aarch64。
Linux 内核社区chose https://lkml.org/lkml/2012/7/6/624将他们的内核端口称为该架构的arm64而不是aarch64,因此这就是一些arm64用法的来源。
Apple 开发的 AArch64 后端称为“ARM64”,而 LLVM 社区开发的后端称为“AArch64”(因为它是 64 位 ISA 的规范名称)。两者合并了in 2014 https://www.phoronix.com/news/MTY5ODk现在后端称为“AArch64”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)