GNU9.2 A-profile处理器的交叉工具链
特征
•基于GCC 9.2(见https://gcc.gnu.org/gcc-9/changes.html 详细信息)。
•Windows(x86_64)上支持的目标:AArch64(裸机和Linux)、AArch32(裸机、Linux硬浮点)
•Linux(x86_64)上支持的目标:AArch64(裸机、Linux、Linux big-endian)、AArch32(裸机、Linux硬浮点)
•Linux(AArch64)上支持的目标:AArch64(裸机)、AArch32(裸机、Linux硬浮点)
自Arm发布GCC 8.3-2019.03以来的变化
•针对AArch64(裸机)和AArch32(裸机,Linux硬浮动)的附加AArch64主机交叉工具链
•用于AArch64(Linux)和AArch32(Linux硬浮点)的其他Windows主机交叉工具链
•用于AArch64(big-endian裸机)和AArch32(Linux软浮点)的失效Linux(x86_64)工具链
•更改了工具链命名约定,以匹配标准目标三元组命名约定,供应商名称为“无”。例如,arm eabi是arm none eabi。
•修复了Windows工具链约定,以正确包含mingw-w64而不是mingw32
主机要求
说明 要求 工具链三元组中的操作系统标识符
Windows on 64-bit x86 (x86_64) Windows 10 mingw-w64-i686
Linux on 64-bit x86(x86_64) Ubuntu 16.04 LTS or later RHEL 7 or later x86_64
Linux on 64-bit Arm(AArch64) Ubuntu 18.04 LTS or later RHEL 8 or later aarch64
已知依赖项
•GDB的Python支持需要用UCS-4支持编译的Python(使用–enable-unicode=ucs4构建),用于Linux(x86_64)和Windows主机
•GDB的Python支持需要Windows主机的Python DLL依赖项。
•专用于Windows主机的工具链需要mingw-w64库,这是一个完整的GCC运行时环境。
GNU工具链
Name Host Target
aarch64-aarch64-none-elf AArch64 Linux AArch64 ELF bare-metal target.
aarch64-arm-none-eabi AArch64 Linux AArch32 bare-metal target.
aarch64-arm-none-linux-gnueabihf AArch64 Linux AArch32 target with hard float.
mingw-w64-i686-arm-none-eabi Windows AArch32 bare-metal target.
mingw-w64-i686-aarch64-none-elf Windows AArch64 ELF bare-metal target.
mingw-w64-i686-arm-none-linux-gnueabihf Windows AArch32 target with hard float.
mingw-w64-i686-aarch64-none-linux-gnu Windows AArch64 GNU/Linux target.
x86_64-aarch64-none-elf x86_64 Linux AArch64 ELF bare-metal target.
***x86_64-aarch64-none-linux-gnu x86_64 Linux AArch64 GNU/Linux target.***
x86_64-aarch64_be-none-linux-gnu x86_64 Linux AArch64 GNU/Linux big-endian target.
x86_64-arm-none-eabi x86_64 Linux AArch32 bare-metal target.
x86_64-arm-none-linux-gnueabihf x86_64 Linux AArch32 target with hard float.
已发布的文件
gcc-arm-.tar.xz 工具链二进制文件
gcc-arm-src-snapshot-.tar.xz 工具链源
gcc-arm-src-snapshot--manifest.txt 包含工具链远程存储库列表的文本清单文件
gcc-arm--abe-manifest.txt Linaro ABE构建系统的输入文件。
*.asc 源代码和二进制文件的MD5校验和文件
安装说明
使用TAR归档实用程序提取XZ压缩版本归档:
$ tar -xJf <toolchain binary> -C <destination directory>
为AArch64 Linux目标主机的Linux(x86_64)示例
$ tar -xJf gcc-arm-9.2-2019.12-x86_64-aarch64-linux-gnu.tar.xz -C /path/to/destination/directory
使用md5sum实用程序计算并检查XZ压缩版本存档的MD5校验和:
$ md5sum --check gcc-arm-9.2-2019.12-x86_64-aarch64-linux-gnu.tar.xz.asc gcc-arm-9.2-2019.12-x86_64-aarch64-linux-gnu.tar.xz: OK
预构建的二进制包可以un-tarred并在适当的地方执行。解压缩Linux跨工具链:
$ mkdir install-lnx
$ tar x -C install-lnx -f <filename>.tar.xz
$ PATH=`pwd`/install-lnx/aarch64/bin:$PATH
如何从源代码构建工具链
您可以使用Linaro ABE(高级构建环境)和提供的ABE清单文件从源代码为A-profile构建GNU交叉工具链。
下面的示例演示如何使用Linaro ABE构建系统从源代码构建gcc-arm-aarch64-linux-gnu工具链。
指令
克隆ABE下面的一个URL,并签出稳定分支(参见获得ABE):
$ git clone https://git.linaro.org/toolchain/abe.git
创建构建目录并对其进行更改。目录的任何名称都可以工作(参见用ABE构建工具链):
$ mkdir build && cd build
配置ABE(从构建目录):
$ ../abe/configure
最后构建工具链(从构建目录):
$ ../abe/abe.sh --manifest gcc-arm-aarch64-linux-gnu-abe-manifest.txt --build all