由于工具链是几个软件包组合编译生成的,所以每个软件包的编译并不是独立的, 相互存在的依赖关系。
一个关键问题是完整的GCC编译器是依赖于glibc的,而glibc需要对应体系结构的GCC来编译。这怎么解决呢?先编译一个辅助的GCC编译器(Bootstrap compiler),用来编译glibc,然后再重新编译完整的GCC编译器。
1、做好准备工作。下载工具源码包和补丁,准备内核头文件,创建工作目录等。
2、编译binutils。
3、编译辅助编译器。
4、编译glibc库,这里要使用交叉编译工具链,例如:arm-linux-gcc等
5、编译生成完整的GCC编译器。重新配置GCC功能,使其支持C、C++等语言。
《嵌入式Linux系统开发技术详解--基于ARM》