Различия между arm64 и aarch64

У меня есть два "разблокированных" устройства: 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

для Samsung Galaxy s6 Edge:

[email protected]:/ $ 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, относится к прошивкам, а antepenultimate infos, arm64 и aarch64 - для процессоров.

Мои вопросы заключаются в следующем: очевидно, строки "arm64" и "aarch64" не совпадают, но я всегда думал, что arm64 и aarch64 были одинаковыми. (Он даже сказал, когда вы положили тег arm64 на вопрос здесь.)

Итак, действительно ли они идентичны?

В частности, о чем я должен беспокоиться в случае библиотек перекрестного построения для обеих целей? На самом деле, у меня есть gcc 5.2.0, но, возможно, и более низкие версии. Могу ли я просто пройти

-target=arm64

или

-target=aarch64

в зависимости от того, какое устройство я нацелен и просто беспокоюсь о остальных параметрах для настройки?

ИЗМЕНИТЬ Хм, ищите это снова, без успеха.

Ответы

Ответ 1

Кажется, что ARM64 был создан Apple и AARCH64 другими, в первую очередь парнями GNU/GCC.

После некоторого googling я нашел эту ссылку:

Объединенные 64-разрядные ARM64/AArch64 LLVM объединились

Итак, это имеет смысл, iPad называет себя ARM64, поскольку Apple использует LLVM, а Edge использует AARCH64, поскольку Android использует GNU GCC toolchain.

Ответ 2

AArch64 - это 64-битное состояние, представленное в архитектуре Armv8-A (https://en.wikipedia.org/wiki/ARM_architecture#ARMv8-A). 32-битное состояние, обратно совместимое с Armv7-A и предыдущими 32-битными архитектурами Arm, называется AArch32. Поэтому триплет GNU для 64-битного ISA - это aarch64. Сообщество разработчиков ядра Linux предпочло назвать свой порт ядра этой архитектурой arm64, а не aarch64, так что откуда происходит некоторое использование arm64.

Насколько я знаю, бэкэнд Apple для aarch64 назывался arm64, тогда как бэкэнд, разработанный сообществом LLVM, назывался aarch64 (так как это каноническое имя для 64-битного ISA), а затем оба были объединены, а бэкэнд теперь называется aarch64.,

Таким образом, aarch64 и arm64 относятся к одному и тому же.

Ответ 3

на самом деле яблоко ppc64 было ppc64/PPC64, и, например, для компиляции Gridcoin под Debian после портирования потребовалось 1 5 символов дополнительного кода после патча Android/pi/adrino только с aarch64 и AARCH64. Было больше кодов, но сообщество Gridcoin является кликой из 8, следовательно, это отсутствие значения в 2 раза меньше, чем 2 года назад, когда взломанный русским 4 июля 2017 года, когда он поднялся до небес, а затем был закачан и не восстановился. У меня есть Sun Ultra 80, на которую я собирался портировать, Caraka, который является "Лидером сообщества Trusted", известной как часть GRC8, попросил сообщество, у которого есть оборудование, отличное от x86, портировать, чтобы исходный код функционировал как реальный исходный код и компилировался. на любой платформе и архитектуре.

Arm не нов, он просто переименован в MIPS.