OpenWrt编译出ARM/MIPS等平台的native GCC (toolchain)

愈深入地研究OpenWrt,愈佩服它框架的独到之处。


两天前lintel告诉我,他在s3c6410的ARM Debian上验证了可以编译OpenWrt,只不过编译时间太长了,用了将近两天半编译s3c2440 OpenWrt。

当时觉得好神奇啊,利用ARM Debian的编译环境可以编译出其他处理器的OpenWrt!

这直接证明了OpenWrt的强大之处:可以在任何处理器平台上编译任意处理器的OpenWrt!


当时我在想,如果编译的OpenWrt根文件系统rootfs本身就自带编译器,这不就可以省略掉了使用ARM Debian这个环节?!

直接编译出目标机所使用的Native Toolchain本地编译工具链, 这样包含的工具链的OpenWrt Linux就可以编译出包括自身处理器在内的所有处理器平台的OpenWrt,也就是用OpenWrt生成OpenWrt!

这让我想到了人类开始进入文明时代: 使用工具制造工具!



经过几天的努力终于ok,gcc可以使用了!

这其中还添加了gmp,mfpr库,这是gcc-4.3.3以后所必备的,用于处理高精度浮点运算。(OpenWrt原始自带的GCC feeds是4年前比较老的版本,和目前所使用的backfire_10.03.1不匹配,所以自己重写;)


这样,OpenWrt其自身不仅可以编译出交叉编译工具链, 用于在PC上编译目标机的可执行程序;
而且,也可以编译出目标机(比如arm或mips平台)所使用的本地编译工具链Native Toolchain(如arm下运行的gcc,binutils等),
从此,ARM/MIPS/x86/PowerPC等嵌入式平台就可以实现自给自足,无需在PC上交叉编译然后再拷贝到嵌入式平台上,直接本地编译即可 : )


照这样推下去,以后手机、平板啥的都可以运行OpenWrt,也能编译OpenWrt。

缺点就是运行速度不是那么给力,编译大型软加耗时较长,不过照着目前双核,4核,8核的发展趋势,硬件过剩,这个也将不成问题!





下面是在arm s3c2440上运行的gcc截图:










你可能感兴趣的:(OpenWrt编译出ARM/MIPS等平台的native GCC (toolchain))