因为某些原因最近需要编译一下backfire的openwrt,我的系统是ubuntu是14.04的,应该是因为backfire太古老了,ubuntu14.04下编译的时候出现了一些问题,上网查找了这两个问题的解决方法,留存一下。
编译出现的第一个错误如下所示:
bfd.texinfo:326:unknowncommand `colophon'
bfd.texinfo:337: unknown command `cygnus'
./elf.texi:11: raising the section level of @subsubsection which is too low
make[7]: *** [bfd.info]Error 1
make[7]: Leaving directory `/home/chuxuan/openwrt/backfire/build_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/binutils-2.19.1/bfd/doc'
Making info in po
make[7]: Entering directory `/home/chuxuan/openwrt/backfire/build_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/binutils-2.19.1/bfd/po'
make[7]: Nothing to be done for `info'.
make[7]: Leaving directory `/home/chuxuan/openwrt/backfire/build_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/binutils-2.19.1/bfd/po'
make[7]: Entering directory `/home/chuxuan/openwrt/backfire/build_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/binutils-2.19.1/bfd'
make[7]: Nothing to be done for `info-am'.
make[7]: Leaving directory `/home/chuxuan/openwrt/backfire/build_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/binutils-2.19.1/bfd'
make[6]: *** [info-recursive] Error 1
make[6]: Leaving directory `/home/chuxuan/openwrt/backfire/build_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/binutils-2.19.1/bfd'
make[5]: *** [all-bfd] Error 2
make[5]: Leaving directory `/home/chuxuan/openwrt/backfire/build_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/binutils-2.19.1'
make[4]: *** [all] Error 2
make[4]: Leaving directory `/home/chuxuan/openwrt/backfire/build_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/binutils-2.19.1'
make[3]: *** [/home/chuxuan/openwrt/backfire/build_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/binutils-2.19.1/.built]Error 2
make[3]: Leaving directory `/home/chuxuan/openwrt/backfire/toolchain/binutils'
make[2]: *** [toolchain/binutils/compile] Error 2
make[2]: Leaving directory `/home/chuxuan/openwrt/backfire'
make[1]: *** [/home/chuxuan/openwrt/backfire/staging_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/stamp/.toolchain_install]Error 2
make[1]: Leaving directory `/home/chuxuan/openwrt/backfire'
make: *** [world] 错误 2
查询之后发现是binutils版本的问题,在make menuconfig的时候修改一下binutils的版本就可以了。由于对openwrt实在是不怎么熟悉,寻找这个修改的选项还花了我一点时间,o(╯□╰)o。。修改路径如下:
make menuconfig---->Advanced configuration options(for developers)---->toolchains---->binutils2.20.1
修改完这个之后,再次进行编译,但是接着又出现了另外一个问题:
@itemx mustfollow @item
更详细的错误提示如下:
/openwrt/carambola2/build_dir/toolchain-mips_r2_gcc-4.7-linaro_uClibc-0.9.33.2/gcc-linaro-4.7-2012.12/gcc/doc/cppopts.texi:811:@itemx must follow @item
make[5]: *** [doc/cpp.info] Error 1
make[5]: Leaving directory `/openwrt/carambola2/build_dir/toolchain-mips_r2_gcc-4.7-linaro_uClibc-0.9.33.2/gcc-linaro-4.7-2012.12-minimal/gcc'
make[4]: *** [all-gcc] Error 2
make[4]:Leaving directory`/openwrt/carambola2/build_dir/toolchain-mips_r2_gcc-4.7-linaro_uClibc-0.9.33.2/gcc-linaro-4.7-2012.12-minimal'
看这提示应该是和texinfo有点关系, 临时解决办法是将shell texinfo降级到4.13(在ubuntu13里它就被升级到5了,怪不得升级系统到14.04之后就出现了这个问题),降级texinfo的具体办法如下:通过下载编译源码文件可以安装比较老一点的版本:
wget http://ftp.gnu.org/gnu/texinfo/texinfo-4.13a.tar.gz
tar -zxvf texinfo-4.13a.tar.gz
cd texinfo-4.13
./configure
make
sudo make install
还有一个就是编译的时候偶尔会出现md5sum mistake的错误,我这里竟然是由于网络断了的缘故,所以编译的时候一定要切记保持网络的连接。
参考的资料: