gnu3.4.4交叉工具链的建立(kernel-2.6.14.1)
来源:互联网 发布:人大报刊资料数据库 编辑:程序博客网 时间:2024/05/17 23:10
源代码下载:
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
拷贝glibclinuxthreads2.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
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
拷贝glibclinuxthreads2.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
- gnu3.4.4交叉工具链的建立(kernel-2.6.14.1)
- Linux kernel 2.6 交叉编译工具链
- Linux kernel 2.6 交叉编译工具链
- Linux kernel 2.6 交叉编译工具链
- Linux kernel 2.6 交叉编译工具链
- AT91RM9200引导程序的建立--------建立交叉编译工具链
- 建立交叉编译工具链
- 建立QQ2440的交叉工具链(cygwin环境)
- cross compiler Toolchain(交叉编译工具链)的建立
- cross compiler Toolchain(交叉编译工具链)的建立
- ARM-Linux交叉编译工具链的建立
- qt交叉编译工具的建立
- 如何建立交叉编译工具链
- 如何建立交叉编译工具链
- arm gcc交叉编译工具链建立
- 交叉编译工具链建立与常识
- AT91RM9200引导程序的建立(一)--------建立交叉编译工具链
- AT91RM9200引导程序的建立(一)--------建立交叉编译工具链
- 关于VC++中,两种自定义消息的发送与接收的方法实现进行说明
- 《C专家编程》读书笔记(3)
- 网络参透技术
- JDOM入门:使用JDOM解析XML
- asp.net
- gnu3.4.4交叉工具链的建立(kernel-2.6.14.1)
- 反NP监视原理
- 如何在NP下读写游戏内存及如何进入NP进程
- 剖析Windows任务管理器开发原理与实现
- 逆向NP之注入npggNT.des
- 回溯法实现邮票问题
- CStdioFile类readstring函数返回笔记
- 逆向RING0程序从这里开始
- Const用法小结