如何编译ARM EABI工具链?

How to compile ARM EABI toolchain?

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

内核源已准备就绪。

和内核文档说我应该使用 arm-eabi-4.9 工具链用于 ARM EABI 编译内核。

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

GCC 4.9一样吗?

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

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

的信息

我最初在 GCC 4.9 的基础上进行了修改 this

我可以使用这个资源然后为 arm、aarch64 构建 GCC 4.9 工具链 ---> 然后使用这个工具链构建内核吗?

编译 gcc 时,一些配置标志将其构建为 cross 编译器...您只能为一对 host/target 体系结构构建 gcc 二进制文件。当 host 和 target 相同时,你会得到一个普通的 gcc 编译器。如果没有,你得到一个 cross 编译器。

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

时添加 --target option

工具链是一个 gcc cross 编译器,用于架构 + 一些基本库(如 glibc)。您还需要构建 ose...

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

arm-none-eabi,是用于裸机 ARM(无 OS)的 cross 编译器。

arm-linux-gnueabi 是一个用于 ARM 二进制文件的 cross 编译器,它将 运行 和 ARM linux OS 使用 eabi(也用它来构建内核)。

此外 ose 是 arm 工具链,您正在寻找 aarch64-linux-gnu

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