GNU9.2 A-profile处理器的交叉工具链

Posted chocolate2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GNU9.2 A-profile处理器的交叉工具链相关的知识,希望对你有一定的参考价值。

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

以上是关于GNU9.2 A-profile处理器的交叉工具链的主要内容,如果未能解决你的问题,请参考以下文章

NDK交叉编译之自定义工具链

Linux中使用交叉编译二进制分析工具链

Linux中使用交叉编译二进制分析工具链

Linux中使用交叉编译二进制分析工具链

嵌入式交叉编译环境搭建

LINUX交叉编译工具链和GCC是啥关系啊