如何更改 scons 使用的工具链

如何更改 scons 使用的工具链

我正在尝试在 ARM 设备(即 PocketCHIP)上编译 OpeniBoot,按照本指南(不过,考虑到我没有使用 Raspberry Pi,因此做了一些小修改。)OpeniBoot 是一个定制的低级引导加载程序,旨在安装在 Apple 设备上,例如 iPod Touch 或 iPhone。它允许用户在运行普通 iOS 内核的同时运行 Linux 内核,以及执行其他低级操作。

为了编译 OpeniBoot 的二进制文件,我已成功编译并安装了列出的几乎所有依赖项。但是,运行时scons iPhone4出现错误:

chip@chip:~/openiBoot$ scons iPhone4
...
arch-arm/asmhelpers.sx: Assembler messages:
arch-arm/asmhelpers.sx:212: Error: selected processor does not support `wfi'
scons: *** [arch-arm/iPhone4_asmhelpers.o] Error 1
scons: building terminated because of errors.

我研究过这个错误,发现此解决方案

通过在编译器选项中添加“-mcpu=cortex-a8”来修复此问题。

我已经尝试将该选项附加到 scons 命令本身,语法类似于此:

scons -mcpu=cortex-a8 iPhone4

无济于事。

所以问题是:使用时如何将选项传递给编译器scons

- 编辑 -

我已经解决了这个问题,通过将文件“ARMEnviroment.SConscript”中的一行更改为如下内容:

plat_flags = ['-mlittle-endian', '-mfpu=vfp', '-mthumb', '-mthumb-interwork', '-fPIC', '-mcpu=cortex-a8']

但是,现在我在编译时遇到一个新错误:

chip@chip:~/openiBoot$ scons iPhone4
...
arch-arm/entry.sx:0: error: bad value (cortex-a8) for -mcpu= switch
scons: *** [arch-arm/iPhone4_entry.o] Error 1
scons: building terminated because of errors.

我相信这是因为scons仍然使用随安装的旧工具链apt-getGCC-4.9.2,而不是使用openiboot-toolchain我已经编译的(我相信这对于编译该程序是必要的)。

所以问题是,我如何更改scons用于编译代码的工具链?

相关内容