在Arch Linux上配置MIPS交叉编译工具链

最近参加了龙芯杯,其中测试程序需要自己编译

本文已经失效,目前最新版本(12)已经修复了相关问题

我是用的是Arch Linux,其中在AUR中已经有了cross-mips-elf-gcc(默认大端法)和cross-mipsel-linux-gnu-gcc(默认小端法)工具链,但是在最新的环境下,这个软件会出现编译失败的情况

错误在于Arch最新的工具链添加了编译选项标识,将format-security问题看作warning处理,目前已经有人报告了问题,但是看起来官方不认为这是问题

所以我们可以通过手动修改PKGBUILD添加编译指令:

1
2
3
# 编译前修改PKGBUILD
yay --editmenu -S cross-mips-elf-gcc
# cross-mipsel-linux-gnu-gcc同理

然后在./configure前面插入两行:

1
2
export CFLAGS="${CFLAGS} -Wno-error=format-security -Wformat-security"
export CXXFLAGS="${CXXFLAGS} -Wno-error=format-security -Wformat-security"

接着往configure下面的参数中新加入一条:--enable-build-format-warnings

保存后即可正常编译MIPS工具链