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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值