在 mac os 上组装 armv8

Assembly armv8 on mac os

我想在我的 mac 上 assemble Aarch64 armv8 Assembly 并最终 运行 它与 qemu 并且可能在像 raspberry pi 2 或 4 这样的真实设备上稍后的。我不知道如何 assemble 我将要编写的代码,gcc、llvm-gcc 和 clang 似乎不支持 -arch=armv8 标志或类似的东西。所以我无法针对目标架构进行构建,我该如何实现?

我 运行宁 mac os 10.14.5。我不介意找到适用于最新 ubuntu 版本的解决方案,因为我有一个用于 linux 开发的 VM。

Xcode 附带的 clang 版本支持 -arch arm64。 (或 armv7 表示 32 位。)
请注意,如果您想使用任何库,它们也必须是 arm64。如果你愿意,你可以使用 xcrun -sdk iphoneos clang -arch arm64 [...] 调用 iOS 工具链,但是你还必须从一些 IPSW 中提取你想要的库并将它们填充到 qemu 中。

另请注意,上面将为您提供一个 Mach-O 二进制文件。对于您的 Raspberry Pi,您可能需要一个 ELF,并且您可能需要 gcc 而不是 clang。根据您的目标,您应该能够使用 --target 作为 aarch64-linux-gnuaarch64-none-elf 从源代码构建 gcc 和 GNU binutils。另一个注意事项:由于 macOS 默默地将 gcc 别名为 clang 并且许多工具都依赖于此,因此您可能还希望使用 --program-prefix=aarch64-.

之类的东西构建此工具链