gnu3.4.4交叉工具鏈的建立(kernel-2.6.14.1)

 源代碼下載:
http://ftp.gnu.org/gnu/binutils/binutils-2.16.tar.gz
http://ftp.gnu.org/gnu/gcc/gcc-3.4.4/gcc-3.4.4.tar.bz2
http://ftp.gnu.org/gnu/glibc/glibc-2.3.5.tar.gz
http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.3.5.tar.gz
http://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.1.tar.gz
補丁:
http://frank.harvard.edu/%7Ecoldwell/toolchain/ioperm.c.diff
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/flow.c.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.563.4.2&r2=1.563.4.3
http://frank.harvard.edu/%7Ecoldwell/toolchain/t-linux.diff

1 設置環境變量

export PREFIX=/home/xuhaowu/arm/tools/3.4.4
PATH=$PATH:/home/xuhaowu/arm/tools/3.4.4/bin:/home/xuhaowu/arm/tools/gnuarm-3.4.3/bin 

2.編譯gnu binutile
 $ mkdir build-bin
 $ configure --prefix=${PREFIX} --target=arm-linux --with-sysroot=${PREFIX}/sysroot 

3.準備內核頭文件
用已建立的交叉工具爲目標編譯內核,會產生相應的鏈接
$ mkdir -p ${PREFIX}/sysroot/usr/inculde
拷貝linux目錄include中的asm-arm,linux.asm-generic到
${PREFIX}/sysroot/usr/inculde中,創建asm-arm的鏈接asm

4.譯編 glibc 頭文件         
$ cd /home/xuhaowu/build-tools/build-tmp/mig
$ patch -d glibc-2.3.5 -p1 < ioperm.c.diff
拷貝glibc­linuxthreads­2.3.5.tar.gz解壓的兩個文件到
glibc-2.3.5中
$ /configure --prefix=/usr --host=arm-linux --enable-add-ons=linuxthreads --with-headers=${PREFIX}/sysroot/usr/include
$ make cross-compiling=yes install_root=${PREFIX}/sysroot install-headers
$ touch ${PREFIX}/sysroot/usr/include/gnu/stubs.h
$ touch ${PREFIX}/sysroot/usr/include/bits/stdio_lim.h

5.編譯 gcc 第一階段
進入gcc源碼所在目錄
$ patch -d gcc-3.4.4 -p1 < flow.c.diff
$ patch -d gcc-3.4.4 -p1 < t-linux.diff
$ mkdir build-gcc1
$ cd
build-gcc1
$ configure --prefix=${PREFIX} --target=arm-linux --enable-languages=c,c++ --with-sysroot=${PREFIX}/sysroot
$ make all-gcc
$ make install-gcc

6.編譯完整的 glibc  
$ mkdir build-glibc
$ cd
build-glibc
$ BUILD_CC=gcc CC=arm-linux-gcc AR=arm-linux-ar RANLIB=arm-linux-ranlib AS=arm-linux-as LD=arm-linux-ld   /home/xuhaowu/build-tools/build-tmp/mig/glibc-2.3.5/configure
--prefix=/usr --build=i686-pc-linux-gnu --host=arm-unknown-linux-gnu --target=arm-unknown-linux-gnu --without-__thread --enable-add-ons=linuxthreads --with-headers=${PREFIX}/sysroot/usr/include
$ make
$ make install_root=${PREFIX}/sysroot install

7.編譯完整的 gcc 
$ mkdir build-gcc2
$ cd
build-gcc2
$ /home/xuhaowu/build-tools/build-tmp/mig/gcc-3.4.4/configure --prefix=${PREFIX} --target=arm-linux --enable-languages=c,c++ --with-sysroot=${PREFIX}/sysroot
$ make
$ make install
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章