到http://kegel.com/crosstool/#download下载crosstools-0.43.tar.gz
接着到ftp://ftp.ntu.edu.tw/pub/gnu/gnu/准备以下文件
linux-libc-headers-2.6.12.0.tar.bz2
linux-2.6.15.4.tar.bz2
glibc-linuxthreads-2.3.2.tar.bz2
glibc-2.3.2.tar.bz2
gdb-6.5.tar.bz2
gcc-4.1.0.tar.bz2
gcc-3.3.6.tar.bz2
binutils-2.16.1.tar.bz2
放到/home/user/downloads/下
解压crosstools-0.43.tar.gz
cd crosstools
找到与cpu对应的shell script(比如我的板子cpu是xsacle的,那就用demo-xscale.sh), 打开修改参数,
主要是以上软件的放置目录及编译后生成文件的位置
由于crosstools-.0.43 只对gcc-3.2 到gcc-4.1.*支持, 如果本机的gcc版本过低或者过低。一会自动检查的时候会提示gcc is tool old。所以要作如下修改:
在crosstool自己的patches目录下有一个 patch:patches/glibc-2.3.3-allow-gcc-4.0-configure.patch,他会在编译glic-2.3.2的时候给这个configure文件先打补丁,那个补丁来修复这个bug,但是这个补丁文件也不是很好,其内容是:
--- glibc-2.3.3/configure.old Mon Mar 14 12:01:10 2005
+++ glibc-2.3.3/configure Mon Mar 14 12:02:03 2005
@@ -3899,7 +3899,7 @@
ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version /([egcygnustpi-]*[0-9.]*/).*$//1/p'`
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
- 3.[2-9]*)
+ 3.[2-9]*|4.[01]*)
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
即,它只是增加了对4.0xxx或者4.1xxx的支持,因此,修改这个patch,改为3.[2-9]*|4.*)就ok。
接着 sh demo-xsacle.sh运行脚本。
现在可以去吃个饭,泡个mm,抽根烟 。。。。。。再回来看看编译好没,大概1多小时,在/opt/crosstools下就可以看到了