【背景】
折腾:
【记录】在Cygwin下编译gcc-3.4.5-glibc-2.3.6的arm-xscale-linux-gnu交叉编译器
期间,在配置好crosstool:
后,且也基本准备好源码包后,真正去开始编译。
【折腾过程】
1.然后再去真正开始编译ct-ng build,结果出错:
重启电脑。
2.然后的确可以编译了:
CLi@PC-CLI-1 ~/develop/crosstool-ng/crosstool-ng-1.9.3_build $ ct-ng build [INFO ] Performing some trivial sanity checks [INFO ] Build started 20130723.154847 [INFO ] Building environment variables [EXTRA] Preparing working directories [EXTRA] Installing user-supplied crosstool-NG configuration [EXTRA] ================================================================= [EXTRA] Dumping internal crosstool-NG configuration [EXTRA] Building a toolchain for: [EXTRA] build = i686-pc-cygwin [EXTRA] host = i686-pc-cygwin [EXTRA] target = arm-xscale-linux-gnueabi [EXTRA] Dumping internal crosstool-NG configuration: done in 0.90s (at 00:30) [INFO ] ================================================================= [INFO ] Retrieving needed toolchain components' tarballs [EXTRA] Retrieving 'binutils-2.20' [02:11] /
很明显,在下载binutils的源码。但是,之前已经是把源码都下载好了,放到src下面了啊。
3. 后来才发现,原来是,此build,会自动生成对应的src文件夹的:
所以,把上面的源码都拷贝到新生成的目录:
crosstool-ng\crosstool-ng-1.9.3_build\targets\src
中去。
4.但是突然发现,为何此处,用的binutils是2.20,而不是我之前看到的2.22的版本???
结果发现是自己上面下载错了。。。
重新去下载一个:
然后都拷贝到
crosstool-ng\crosstool-ng-1.9.3_build\targets\src
中:
5.然后重新中断编译,重新编译,貌似的确可以找到binutils-2.20了:
CLi@PC-CLI-1 ~/develop/crosstool-ng/crosstool-ng-1.9.3_build $ ct-ng build [INFO ] Performing some trivial sanity checks [INFO ] Build started 20130723.154847 [INFO ] Building environment variables [EXTRA] Preparing working directories [EXTRA] Installing user-supplied crosstool-NG configuration [EXTRA] ================================================================= [EXTRA] Dumping internal crosstool-NG configuration [EXTRA] Building a toolchain for: [EXTRA] build = i686-pc-cygwin [EXTRA] host = i686-pc-cygwin [EXTRA] target = arm-xscale-linux-gnueabi [EXTRA] Dumping internal crosstool-NG configuration: done in 0.90s (at 00:30) [INFO ] ================================================================= [INFO ] Retrieving needed toolchain components' tarballs [EXTRA] Retrieving 'binutils-2.20' [13:00] / /opt/crosstool-ng/bin/ct-ng:143: recipe for target `build' failed make: *** [build] Interrupt CLi@PC-CLI-1 ~/develop/crosstool-ng/crosstool-ng-1.9.3_build $ ct-ng build [INFO ] Performing some trivial sanity checks [INFO ] Build started 20130723.160209 [INFO ] Building environment variables [EXTRA] Preparing working directories [EXTRA] Installing user-supplied crosstool-NG configuration [EXTRA] ================================================================= [EXTRA] Dumping internal crosstool-NG configuration [EXTRA] Building a toolchain for: [EXTRA] build = i686-pc-cygwin [EXTRA] host = i686-pc-cygwin [EXTRA] target = arm-xscale-linux-gnueabi [EXTRA] Dumping internal crosstool-NG configuration: done in 0.87s (at 00:31) [INFO ] ================================================================= [INFO ] Retrieving needed toolchain components' tarballs [EXTRA] Retrieving 'glibc-ports-2.9' [00:55] /
6.但是没有找到glibc-ports-2.9,所以,再去下载glibc-ports-2.9
结果其自己很快下载好了:
[EXTRA] Retrieving 'glibc-ports-2.9' [EXTRA] Saving 'glibc-ports-2.9.tar.bz2' to local storage
又去下载ncurses-5.7:
[EXTRA] Retrieving 'ncurses-5.7'
7.再去下载:
中断,重新build,然后貌似都下载好了,开始解压了:
CLi@PC-CLI-1 ~/develop/crosstool-ng/crosstool-ng-1.9.3_build $ ct-ng build [INFO ] Performing some trivial sanity checks [INFO ] Build started 20130723.164136 [INFO ] Building environment variables [EXTRA] Preparing working directories [EXTRA] Installing user-supplied crosstool-NG configuration [EXTRA] ================================================================= [EXTRA] Dumping internal crosstool-NG configuration [EXTRA] Building a toolchain for: [EXTRA] build = i686-pc-cygwin [EXTRA] host = i686-pc-cygwin [EXTRA] target = arm-xscale-linux-gnueabi [EXTRA] Dumping internal crosstool-NG configuration: done in 0.91s (at 00:33) [INFO ] ================================================================= [INFO ] Retrieving needed toolchain components' tarballs [EXTRA] Retrieving 'expat-2.0.1' [EXTRA] Saving 'expat-2.0.1.tar.gz' to local storage [INFO ] Retrieving needed toolchain components' tarballs: done in 7.17s (at 00:40) [INFO ] ================================================================= [INFO ] Extracting and patching toolchain components [EXTRA] Extracting 'linux-2.6.36' [EXTRA] Patching 'linux-2.6.36' [EXTRA] Extracting 'gmp-4.3.2' [EXTRA] Patching 'gmp-4.3.2' [EXTRA] Extracting 'mpfr-2.4.2' [EXTRA] Patching 'mpfr-2.4.2' [EXTRA] Extracting 'binutils-2.20' [EXTRA] Patching 'binutils-2.20' [EXTRA] Extracting 'gcc-4.4.3' [EXTRA] Patching 'gcc-4.4.3' [EXTRA] Extracting 'glibc-2.9' [EXTRA] Patching 'glibc-2.9' [EXTRA] Extracting 'glibc-ports-2.9' [EXTRA] Patching 'glibc-ports-2.9' [EXTRA] Extracting 'dmalloc-5.5.2' [EXTRA] Patching 'dmalloc-5.5.2' [EXTRA] Extracting 'gdb-6.8' [09:17] /
8.然后编译出错了:
9.解决了上述问题后,就可以正常执行了:
CLi@PC-CLI-1 ~/develop/crosstool-ng/crosstool-ng-1.9.3_build $ ct-ng build [INFO ] Performing some trivial sanity checks [INFO ] Build started 20130723.174732 [INFO ] Building environment variables [EXTRA] Preparing working directories [EXTRA] Installing user-supplied crosstool-NG configuration [EXTRA] ================================================================= [EXTRA] Dumping internal crosstool-NG configuration [EXTRA] Building a toolchain for: [EXTRA] build = i686-pc-cygwin [EXTRA] host = i686-pc-cygwin [EXTRA] target = arm-xscale-linux-gnueabi [EXTRA] Dumping internal crosstool-NG configuration: done in 0.90s (at 00:34) [INFO ] ================================================================= [INFO ] Retrieving needed toolchain components' tarballs [INFO ] Retrieving needed toolchain components' tarballs: done in 1.84s (at 00:36) [INFO ] ================================================================= [INFO ] Extracting and patching toolchain components [EXTRA] Extracting 'expat-2.0.1' [EXTRA] Patching 'expat-2.0.1' [EXTRA] Extracting 'strace-4.5.19' [EXTRA] Patching 'strace-4.5.19' [INFO ] Extracting and patching toolchain components: done in 102.80s (at 02:19) [EXTRA] Saving state to restart at step 'libc_check_config'... [EXTRA] Saving state to restart at step 'kernel_headers'... [INFO ] ================================================================= [INFO ] Installing kernel headers [EXTRA] Installing kernel headers [EXTRA] Checking installed headers [INFO ] Installing kernel headers: done in 109.61s (at 04:12) [EXTRA] Saving state to restart at step 'gmp'... [INFO ] ================================================================= [INFO ] Installing GMP [EXTRA] Configuring GMP [EXTRA] Building GMP [10:48] /
10.但是结果是死在了Building GMP :
CLi@PC-CLI-1 ~/develop/crosstool-ng/crosstool-ng-1.9.3_build $ ct-ng build [INFO ] Performing some trivial sanity checks [INFO ] Build started 20130723.174732 [INFO ] Building environment variables [EXTRA] Preparing working directories [EXTRA] Installing user-supplied crosstool-NG configuration [EXTRA] ================================================================= [EXTRA] Dumping internal crosstool-NG configuration [EXTRA] Building a toolchain for: [EXTRA] build = i686-pc-cygwin [EXTRA] host = i686-pc-cygwin [EXTRA] target = arm-xscale-linux-gnueabi [EXTRA] Dumping internal crosstool-NG configuration: done in 0.90s (at 00:34) [INFO ] ================================================================= [INFO ] Retrieving needed toolchain components' tarballs [INFO ] Retrieving needed toolchain components' tarballs: done in 1.84s (at 00:36) [INFO ] ================================================================= [INFO ] Extracting and patching toolchain components [EXTRA] Extracting 'expat-2.0.1' [EXTRA] Patching 'expat-2.0.1' [EXTRA] Extracting 'strace-4.5.19' [EXTRA] Patching 'strace-4.5.19' [INFO ] Extracting and patching toolchain components: done in 102.80s (at 02:19) [EXTRA] Saving state to restart at step 'libc_check_config'... [EXTRA] Saving state to restart at step 'kernel_headers'... [INFO ] ================================================================= [INFO ] Installing kernel headers [EXTRA] Installing kernel headers [EXTRA] Checking installed headers [INFO ] Installing kernel headers: done in 109.61s (at 04:12) [EXTRA] Saving state to restart at step 'gmp'... [INFO ] ================================================================= [INFO ] Installing GMP [EXTRA] Configuring GMP [EXTRA] Building GMP [EXTRA] Installing GMP [INFO ] Installing GMP: done in 1376.13s (at 27:11) [EXTRA] Saving state to restart at step 'mpfr'... [INFO ] ================================================================= [INFO ] Installing MPFR [EXTRA] Configuring MPFR [27:47] \
10.然后后来去,中断掉,试试多线程:
ct-ng build.4
暂时看来,速度也没太大提升:
CLi@PC-CLI-1 ~/develop/crosstool-ng/crosstool-ng-1.9.3_build $ ct-ng build [INFO ] Performing some trivial sanity checks [INFO ] Build started 20130724.093552 [INFO ] Building environment variables [EXTRA] Preparing working directories [EXTRA] Installing user-supplied crosstool-NG configuration [EXTRA] ================================================================= [EXTRA] Dumping internal crosstool-NG configuration [EXTRA] Building a toolchain for: [EXTRA] build = i686-pc-cygwin [EXTRA] host = i686-pc-cygwin [EXTRA] target = arm-xscale-linux-gnueabi [EXTRA] Dumping internal crosstool-NG configuration: done in 0.90s (at 00:35) [INFO ] ================================================================= [INFO ] Retrieving needed toolchain components' tarballs [INFO ] Retrieving needed toolchain components' tarballs: done in 1.63s (at 00:37) [INFO ] ================================================================= [INFO ] Extracting and patching toolchain components [INFO ] Extracting and patching toolchain components: done in 10.47s (at 00:48) [EXTRA] Saving state to restart at step 'libc_check_config'... [EXTRA] Saving state to restart at step 'kernel_headers'... [INFO ] ================================================================= [INFO ] Installing kernel headers [EXTRA] Installing kernel headers [EXTRA] Checking installed headers [INFO ] Installing kernel headers: done in 110.26s (at 02:41) [EXTRA] Saving state to restart at step 'gmp'... [INFO ] ================================================================= [INFO ] Installing GMP [EXTRA] Configuring GMP [ERROR] Build failed in step 'Installing GMP' [ERROR] Error happened in '/opt/crosstool-ng/lib/ct-ng-1.9.3/scripts/functions' in function 'CT_DoExecLog' (line unknown, sorry) [ERROR] called from '/opt/crosstool-ng/lib/ct-ng-1.9.3/scripts/build/companion_libs/gmp.sh' at line # 39 in function 'do_gmp' [ERROR] called from '/opt/crosstool-ng/lib/ct-ng-1.9.3/scripts/crosstool-NG.sh' at line # 597 in function 'main' [ERROR] Look at '/home/CLi/develop/crosstool-ng/x-tools/arm-xscale-linux-gnueabi/build.log' for more info on this error. [03:42] / CLi@PC-CLI-1 ~/develop/crosstool-ng/crosstool-ng-1.9.3_build $ ^C CLi@PC-CLI-1 ~/develop/crosstool-ng/crosstool-ng-1.9.3_build $ ct-ng build.4 [INFO ] Performing some trivial sanity checks [INFO ] Build started 20130724.093939 [INFO ] Building environment variables [EXTRA] Preparing working directories [EXTRA] Installing user-supplied crosstool-NG configuration [EXTRA] ================================================================= [EXTRA] Dumping internal crosstool-NG configuration [EXTRA] Building a toolchain for: [EXTRA] build = i686-pc-cygwin [EXTRA] host = i686-pc-cygwin [EXTRA] target = arm-xscale-linux-gnueabi [EXTRA] Dumping internal crosstool-NG configuration: done in 0.91s (at 00:36) [INFO ] ================================================================= [INFO ] Retrieving needed toolchain components' tarballs [INFO ] Retrieving needed toolchain components' tarballs: done in 1.58s (at 00:38) [INFO ] ================================================================= [INFO ] Extracting and patching toolchain components [INFO ] Extracting and patching toolchain components: done in 6.14s (at 00:44) [EXTRA] Saving state to restart at step 'libc_check_config'... [EXTRA] Saving state to restart at step 'kernel_headers'... [INFO ] ================================================================= [INFO ] Installing kernel headers [EXTRA] Installing kernel headers [EXTRA] Checking installed headers [INFO ] Installing kernel headers: done in 111.68s (at 02:39) [EXTRA] Saving state to restart at step 'gmp'... [INFO ] ================================================================= [INFO ] Installing GMP [EXTRA] Configuring GMP [02:52] /
不过,的确看到,有多个进程了:
所以,估计对于后期更大的任务,会缩短时间吧。
11.最后,还是出错了:
CLi@PC-CLI-1 ~/develop/crosstool-ng/crosstool-ng-1.9.3_build $ ct-ng build [INFO ] Performing some trivial sanity checks [INFO ] Build started 20130724.112427 [INFO ] Building environment variables [EXTRA] Preparing working directories [EXTRA] Installing user-supplied crosstool-NG configuration [EXTRA] ================================================================= [EXTRA] Dumping internal crosstool-NG configuration [EXTRA] Building a toolchain for: [EXTRA] build = i686-pc-cygwin [EXTRA] host = i686-pc-cygwin [EXTRA] target = arm-xscale-linux-gnueabi [EXTRA] Dumping internal crosstool-NG configuration: done in 0.91s (at 00:41) [INFO ] ================================================================= [INFO ] Retrieving needed toolchain components' tarballs [INFO ] Retrieving needed toolchain components' tarballs: done in 1.57s (at 00:43) [INFO ] ================================================================= [INFO ] Extracting and patching toolchain components [INFO ] Extracting and patching toolchain components: done in 9.77s (at 00:53) [EXTRA] Saving state to restart at step 'libc_check_config'... [EXTRA] Saving state to restart at step 'kernel_headers'... [INFO ] ================================================================= [INFO ] Installing kernel headers [EXTRA] Installing kernel headers [EXTRA] Checking installed headers [INFO ] Installing kernel headers: done in 107.75s (at 02:44) [EXTRA] Saving state to restart at step 'gmp'... [INFO ] ================================================================= [INFO ] Installing GMP [EXTRA] Configuring GMP [EXTRA] Building GMP [EXTRA] Installing GMP [INFO ] Installing GMP: done in 1320.41s (at 24:47) [EXTRA] Saving state to restart at step 'mpfr'... [INFO ] ================================================================= [INFO ] Installing MPFR [EXTRA] Configuring MPFR [EXTRA] Building MPFR [EXTRA] Installing MPFR [INFO ] Installing MPFR: done in 250.44s (at 28:59) [EXTRA] Saving state to restart at step 'ppl'... [EXTRA] Saving state to restart at step 'cloog'... [EXTRA] Saving state to restart at step 'mpc'... [EXTRA] Saving state to restart at step 'libelf'... [EXTRA] Saving state to restart at step 'binutils'... [INFO ] ================================================================= [INFO ] Installing binutils [EXTRA] Configuring binutils [EXTRA] Building binutils [EXTRA] Installing binutils [INFO ] Installing binutils: done in 998.86s (at 45:49) [EXTRA] Saving state to restart at step 'elf2flt'... [EXTRA] Saving state to restart at step 'sstrip'... [EXTRA] Saving state to restart at step 'cc_core_pass_1'... [INFO ] ================================================================= [INFO ] Installing static core C compiler [EXTRA] Configuring static core C compiler [EXTRA] Building static core C compiler [EXTRA] Installing static core C compiler [INFO ] Installing static core C compiler: done in 1282.54s (at 67:22) [EXTRA] Saving state to restart at step 'libc_headers'... [INFO ] ================================================================= [INFO ] Installing C library headers [EXTRA] Configuring C library [EXTRA] Installing C library headers [ERROR] make[3]: *** [/home/CLi/develop/crosstool-ng/x-tools/arm-xscale-linux-gnueabi/arm-xscale-linux-gnueabi//sys-root/usr/include/sys/uio.h] Error 1 [ERROR] make[2]: *** [misc/install-headers] Error 2 [ERROR] make[1]: *** [install-headers] Error 2 [ERROR] Build failed in step 'Installing C library headers' [ERROR] Error happened in '/opt/crosstool-ng/lib/ct-ng-1.9.3/scripts/functions' in function 'CT_DoExecLog' (line unknown, sorry) [ERROR] called from '/opt/crosstool-ng/lib/ct-ng-1.9.3/scripts/build/libc/glibc.sh' at line # 175 in function 'do_libc_headers' [ERROR] called from '/opt/crosstool-ng/lib/ct-ng-1.9.3/scripts/crosstool-NG.sh' at line # 597 in function 'main' [ERROR] Look at '/home/CLi/develop/crosstool-ng/x-tools/arm-xscale-linux-gnueabi/build.log' for more info on this error. [ERROR] (elapsed: 76:07.10) [76:12] / /opt/crosstool-ng/bin/ct-ng:143: recipe for target `build' failed make: *** [build] Error 2
详见:
【总结】