Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android arm64和aarch64之间的差异_Android_Ios_Gcc_Arm_Arm64 - Fatal编程技术网

Android arm64和aarch64之间的差异

Android arm64和aarch64之间的差异,android,ios,gcc,arm,arm64,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 201

我有两台“解锁”设备,一台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和AARC64,代表处理器

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

那么,它们真的相同吗

特别是,在为两个目标交叉构建库的情况下,我应该担心什么?事实上,我考虑的是gcc 5.2.0,但也可能是较低版本。我可以通过吗

-target=arm64

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


编辑哼,再次寻找这个,但没有成功。

看来ARM64是由苹果公司和AARC64由其他公司创建的,最著名的是GNU/GCC公司

通过谷歌搜索,我找到了以下链接:


因此,iPad称自己为ARM64是有道理的,因为苹果使用LLVM,Edge使用AARC64,因为Android使用GNU GCC工具链。

AARC64是Armv8-A架构中引入的64位状态()。与Armv7-A和以前的32位Arm体系结构向后兼容的32位状态称为AArch32。 因此,64位ISA的GNU三元组是aarch64。 Linux内核社区选择将他们的内核端口调用到这个体系结构arm64而不是aarch64,所以这就是一些arm64用法的来源

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


所以AArch64和ARM64指的是同一件事。

Linux认为它们是一样的

find ./* -name aarch64
./tools/testing/selftests/kvm/lib/aarch64
./tools/testing/selftests/kvm/include/aarch64
./tools/testing/selftests/kvm/aarch64

find ./* -name arm64
./arch/arm64    
./Documentation/arm64
./Documentation/translations/zh_CN/arm64
./drivers/acpi/arm64
./include/config/crypto/ghash/arm64
./include/config/crypto/crct10dif/arm64
./include/config/crypto/aes/arm64
./include/config/crypto/sha1/arm64
./include/config/crypto/sha2/arm64
./include/config/crypto/sm3/arm64
./include/config/crypto/sha512/arm64
./include/config/arm64
./include/config/exynos/arm64
./scripts/dtc/include-prefixes/arm64
./tools/testing/selftests/arm64
./tools/arch/arm64
./tools/perf/arch/arm64
./tools/perf/pmu-events/arch/arm64

谢谢你的回答。因此,至少在理论上,对于将gcc从mac os或ubuntu交叉编译到ipad或edge,我不应该真正担心传递给配置脚本的-target选项,只要它是arm64和AARC64中的一个?尽管我没有什么新的添加到上述信息,我想重点介绍的幻灯片10—它重点介绍Linux内核如何在ARM64命名下引用AARCH64。因此,在交叉构建需要支持linux内核头的二进制文件时,ARCH=arm64可能是正确的,即使目标是“aarch64”。您的答案是正确的。ARM64/AArch64合并的方法非常简单。arm64和aarch64在大多数情况下都是同义词。
containerd
将“aarch64”标准化为“arm64”,因此从这个意义上讲,它们都是相同的
find ./* -name aarch64
./tools/testing/selftests/kvm/lib/aarch64
./tools/testing/selftests/kvm/include/aarch64
./tools/testing/selftests/kvm/aarch64

find ./* -name arm64
./arch/arm64    
./Documentation/arm64
./Documentation/translations/zh_CN/arm64
./drivers/acpi/arm64
./include/config/crypto/ghash/arm64
./include/config/crypto/crct10dif/arm64
./include/config/crypto/aes/arm64
./include/config/crypto/sha1/arm64
./include/config/crypto/sha2/arm64
./include/config/crypto/sm3/arm64
./include/config/crypto/sha512/arm64
./include/config/arm64
./include/config/exynos/arm64
./scripts/dtc/include-prefixes/arm64
./tools/testing/selftests/arm64
./tools/arch/arm64
./tools/perf/arch/arm64
./tools/perf/pmu-events/arch/arm64