如何编译ARM EABI工具链?

时间:2016-05-04 23:20:30

标签: linux gcc compiler-construction arm toolchain

我要为我的基于aarch64的设备编译内核

内核源已经准备就绪。

和内核文档说我应该使用 arm-eabi-4.9 toolchain for ARM EABI 来编译内核。

但是它是什么?不同类型的GCC编译器还是什么?

GCC 4.9相同吗?

为什么我想知道这个,因为我想对编译器进行一些修改,以便如何从源代码构建 arm-eabi-4.9工具链for ARM EABI

我在网上做了一些研究,但我发现了gcc 4.9的构建过程和一些关于arm-none-eabi的信息..

我最初在GCC 4.9 this

之上进行了修改

我可以使用这些来源,然后为arm建立GCC 4.9工具链,aarch64 --->然后使用这个工具链构建内核?

1 个答案:

答案 0 :(得分:1)

编译gcc时,一些配置标志将其构建为交叉编译器......您只能为一对主机/目标体系结构构建gcc二进制文件。当主机和目标相同时,您将获得正常的gcc编译器。如果没有,你会得到一个交叉编译器。

要设置目标,您需要在运行./configure

时添加--target option

工具链是架构+一些基本库(如glibc)的gcc交叉编译器。你也需要建造那些......

工具链名称来自 arch [-vendor] [-os] - eabi

arm-none-eabi ,是裸机ARM(无操作系统)的交叉编译器。

arm-linux-gnueabi 是ARM二进制文件的交叉编译器,它使用eabi在ARM Linux操作系统下运行(也可以使用它来构建内核)。

这些 arm 工具链,您正在寻找 aarch64-linux-gnu

考虑寻找一个预构建的工具链(linaro,embedian),需要进行一些微调,所以最好从一个工作二进制文件开始,然后运行gcc -v来展示它是如何构建的。