我打算为Raspberry Pi交叉编译,基本上是一台小型ARM计算机。主机将是一个运行 Arch Linux 的 i686 机器。
我的第一反应是使用 Arch Linux 提供的交叉编译器 arm-elf-gcc-base 和 arm-elf-binutils。但是,我阅读的每个 wiki 和帖子似乎都使用了某些版本的自定义 gcc 构建。他们似乎花费了大量时间来烹饪自己的 gcc。问题是他们从不说为什么使用他们的 gcc 比另一个重要。
库存发行版提供的交叉编译器能否用于在通用内核和应用程序中构建 Raspberry Pi 或 ARM?
ARM架构是否需要多个编译器?如果是这样,为什么,因为单个 gcc 可以支持所有 x86 变体?
如果是 2),那么我如何推断特定版本的 gcc 支持的目标子集?
更一般的问题,什么一般用例需要自定义 gcc 构建?
请尽可能技术,我想知道为什么以及如何。