ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:16.90KB ,
资源ID:30663028      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30663028.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(手工制作最新版armlinux交叉工具链.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

手工制作最新版armlinux交叉工具链.docx

1、手工制作最新版armlinux交叉工具链手工制作最新版arm-linux交叉工具链注意:本文是在ubuntu 10.04 desktop i386操作系统上完成的,1、准备目录和环境变量# echo “1. Prepare Directories and Environment Variables” | tee /make_cross.txt#mkdir -p /usr/local/arm/tars,source,4.2.1# grep HISTSIZE /.bashrc | echo “export HISTSIZE=5000 /.bashrc# . /.bashrc# apt-get -y

2、 install patch texinfo m4 flex bison# apt-get -y build-dep glib2.0# apt-get -y build-dep gcc-4.3# grep TARGET_PREFIX /.bashrc | cat /.bashrc export TOP=/usr/local/armexport TAR=$TOP/tarsexport CLFS=$TOP/clfsexport SYSROOT=$TOP/4.2.1export TARGET_PREFIX=$TOP/4.2.1export LINUX_VERSION=2.6.22.6export B

3、INUTILS_VERSION=2.18export GLIBC_VERSION=2.6.1export GCC_VERSION=4.2.1export GDB_VERSION=7.0export CLFS_TARGET=”arm-linux”export PATH=$TARGET_PREFIX/bin:$PATHunset CFLAGSunset CXXFLAGSEOF# . /.bashrc2、准备源码包# echo “2. Prepare Source Packages” | tee -a /make_cross.txt# which wget | apt-get -y install

4、wget# cd /usr/local/arm/tars# -f binutils-2.18.tar.bz2 | wget ftp:/ftp.gnu.org/gnu/binutils/binutils-2.18.tar.bz2# -f binutils-2.18-posix-1.patch | wget # -f gcc-4.2.1.tar.bz2 | wget ftp:/ftp.gnu.org/gnu/gcc/gcc-4.2.1/gcc-4.2.1.tar.bz2# -f gcc-4.2.1-cross_search_paths-1.patch | wget # -f gcc-4.2.1-p

5、osix-1.patch | wget # -f glibc-2.6.1.tar.bz2 | wget ftp:/ftp.gnu.org/gnu/glibc/glibc-2.6.1.tar.bz2# -f glibc-ports-2.6.1.tar.bz2 | wget ftp:/ftp.gnu.org/gnu/glibc/glibc-ports-2.6.1.tar.bz2# -f glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch | wget # -f glibc-2.6.1-cross_hacks-1.patch | wget # -f glibc-2.6.

6、1-hppa_nptl-1.patch | wget # -f glibc-2.6.1-libgcc_eh-1.patch | wget # -f glibc-2.6.1-localedef_segfault-1.patch | wget # -f glibc-2.6.1-sysdep_cancel-1.patch | wget # -f linux-2.6.22.tar.bz2 | wget ftp:/ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.tar.bz2# -f gdb-7.0a.tar.bz2 | wget ftp:/ftp.g

7、nu.org/gnu/gdb/gdb-7.0a.tar.bz23、安装Linux内核头文件# echo “3. Install Linux Kernel Headers” | tee -a /make_cross.txt# install -dv $SYSROOT/usr/include# install -dv $TOP/source# cd $TOP/source# tar -xjf $TAR/linux-$LINUX_VERSION.tar.bz2# cd linux-$LINUX_VERSION# make mainstone_defconfig ARCH=arm# make incl

8、ude/linux/version.h# cp -a include/asm-generic,linux,mtd,scsi,sound $SYSROOT/usr/include# cp -a include/asm-arm $SYSROOT/usr/include/asm4、编译安装binutils# echo “4. Compile Binutils” | tee -a /make_cross.txt# mkdir -p $TARGET_PREFIX# cd $TOP/source# tar -jxf $TAR/binutils-$BINUTILS_VERSION.tar.bz2# cd b

9、inutils-$BINUTILS_VERSION# patch -Np1 -i $TAR/binutils-$BINUTILS_VERSION-posix-1.patch# mkdir -p $TOP/source/BUILD/binutils-$BINUTILS_VERSION# cd $TOP/source/BUILD/binutils-$BINUTILS_VERSION# export AR=ar# export AS=as# sed -i s%0-9|4.4-9|5-9%0-9|4.4-9|4.1-90-9*|5-9%g $TOP/source/binutils-$BINUTILS_

10、VERSION/configure# $TOP/source/binutils-$BINUTILS_VERSION/configure prefix=$TARGET_PREFIX target=$CLFS_TARGET with-sysroot=$SYSROOT disable-nls enable-shared disable-multilib enable-werror=no# make configure-host# make# make install# cp -v $TOP/source/binutils-$BINUTILS_VERSION/include/libiberty.h $

11、SYSROOT/usr/include5、安装Glibc 的头文件# echo “5. Install the Glibc Headers” | tee -a /make_cross.txt# cd $TOP/source# tar -jxf $TAR/glibc-$GLIBC_VERSION.tar.bz2# mv glibc-$GLIBC_VERSION glibc-$GLIBC_VERSION-headers-build# cd glibc-$GLIBC_VERSION-headers-build# cp configure,.orig# sed -e s/3.4/3.0-9/g con

12、figure.orig configure# tar -jxf $TAR/glibc-ports-$GLIBC_VERSION.tar.bz2# mv glibc-ports-$GLIBC_VERSION ports# mkdir -p $TOP/source/BUILD/glibc-$GLIBC_VERSION-headers-build# cd $TOP/source/BUILD/glibc-$GLIBC_VERSION-headers-build# echo “libc_cv_forced_unwind=yes” config.cache# echo “libc_cv_c_cleanup

13、=yes” config.cache# echo “libc_cv_arm_tls=yes” config.cache# export CC=gcc# sed -i s%2.13-9*%2.13-9* | 2.2*%g $TOP/source/glibc-$GLIBC_VERSION-headers-build/configure #as和ld版本太新# $TOP/source/glibc-$GLIBC_VERSION-headers-build/configure prefix=/usr host=$CLFS_TARGET with-headers=$SYSROOT/usr/include

14、cache-file=config.cache# make install-headers install_root=$SYSROOT# cp -v bits/stdio_lim.h $SYSROOT/usr/include/bits# touch $SYSROOT/usr/include/gnu/stubs.h# cp -f $TOP/source/glibc-$GLIBC_VERSION-headers-build/ports/sysdeps/unix/sysv/linux/arm/nptl/bits/pthreadtypes.h $SYSROOT/usr/include/bits6、编译

15、gcc(第一阶段,生成临时arm-linux-gcc)# echo “6. Compile Gcc Firstly” | tee -a /make_cross.txt# export CC=gcc# cd $TOP/source# tar -jxf $TAR/gcc-$GCC_VERSION.tar.bz2# mv gcc-$GCC_VERSION gcc-$GCC_VERSION-stage1# cd gcc-$GCC_VERSION-stage1# patch -Np1 -i $TAR/gcc-$GCC_VERSION-posix-1.patch# patch -Np1 -i $TAR/g

16、cc-$GCC_VERSION-cross_search_paths-1.patch# cd $TOP/source# mkdir -p BUILD/gcc-$GCC_VERSION-stage1# cd BUILD/gcc-$GCC_VERSION-stage1# $TOP/source/gcc-$GCC_VERSION-stage1/configure prefix=$TARGET_PREFIX host=$MACHTYPE target=$CLFS_TARGET disable-multilib with-sysroot=$SYSROOT disable-nls disable-shar

17、ed enable-languages=c# make all-gcc# make install-gcc7、编译库文件GLIBC# echo “7. Compile Glibc Libraries” | tee -a /make_cross.txt# cd $TOP/source# tar -jxf $TAR/glibc-$GLIBC_VERSION.tar.bz2# cd glibc-$GLIBC_VERSION# tar -jxf $TAR/glibc-ports-$GLIBC_VERSION.tar.bz2# mv glibc-ports-$GLIBC_VERSION ports# p

18、atch -Np1 -i $TAR/glibc-2.6.1-libgcc_eh-1.patch# patch -Np1 -i $TAR/glibc-2.6.1-localedef_segfault-1.patch# patch -Np1 -i $TAR/glibc-2.6.1-cross_hacks-1.patch# patch -Np1 -i $TAR/glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch# mkdir -p $TOP/source/BUILD/glibc-$GLIBC_VERSION# cd $TOP/source/BUILD/glibc-$GL

19、IBC_VERSION# echo “libc_cv_forced_unwind=yes” config.cache# echo “libc_cv_c_cleanup=yes” config.cache# echo “libc_cv_arm_tls=yes” config.cache# export BUILD_CC=gcc# export CC=”$CLFS_TARGET-gcc”# export AR=”$CLFS_TARGET-ar”# export RANLIB=”$CLFS_TARGET-ranlib”# sed -i /#include “locfile-kw.h”/a const

20、 struct keyword_t * locfile_hash (register const char *str, register unsigned int len); $TOP/source/glibc-$GLIBC_VERSION/locale/programs/locfile.c# sed -i /#include “charmap-kw.h”/a const struct keyword_t * charmap_hash (register const char *str, register unsigned int len); $TOP/source/glibc-$GLIBC_

21、VERSION/locale/programs/charmap.c# $TOP/source/glibc-$GLIBC_VERSION/configure prefix=/usr libexecdir=/usr/lib/glibc host=$CLFS_TARGET build=$MACHTYPE disable-profile enable-add-ons with-tls enable-kernel=2.6.0 with-_thread with-binutils=$TARGET_PREFIX/bin with-headers=$SYSROOT/usr/include cache-file

22、=config.cache# make# make install install_root=$SYSROOT8、编译gcc(第二阶段,生成最终arm-linux-gcc)# echo “8. Compile Gcc Secondly” | tee -a /make_cross.txt# export CC=gcc# cd $TOP/source# tar -jxf $TAR/gcc-$GCC_VERSION.tar.bz2# mv gcc-$GCC_VERSION gcc-$GCC_VERSION-stage2# cd gcc-$GCC_VERSION-stage2# patch -Np1

23、-i $TAR/gcc-$GCC_VERSION-posix-1.patch# patch -Np1 -i $TAR/gcc-$GCC_VERSION-cross_search_paths-1.patch# cd $TOP/source# mkdir -p BUILD/gcc-$GCC_VERSION-stage2# cd BUILD/gcc-$GCC_VERSION-stage2# $TOP/source/gcc-$GCC_VERSION-stage2/configure prefix=$TARGET_PREFIX host=$MACHTYPE target=$CLFS_TARGET dis

24、able-multilib with-sysroot=$SYSROOT disable-nls enable-shared enable-languages=c,c+ enable-_cxa_atexit enable-c99 enable-long-long enable-threads=posix# make all-gcc# make install-gcc install_root=$TARGET_PREFIX9、编译GDB# echo “9. Compile GDB” | tee -a /make_cross.txt# export CC=gcc# cd $TOP/source# t

25、ar -jxf $TAR/gdb-$GDB_VERSIONa.tar.bz2# apt-get -y install libncurses5-dev# mkdir -p BUILD/gdb-$GDB_VERSION# cd BUILD/gdb-$GDB_VERSION# echo “9.1. Compile GDB Client” | tee -a /make_cross.txt# $TOP/source/gdb-$GDB_VERSION/configure target=$CLFS_TARGET prefix=$TARGET_PREFIX# make# make install# echo

26、“9.2. Compile GDB Server” | tee -a /make_cross.txt# export CC=arm-linux-gcc# mkdir -p gdbserver# cd gdbserver# $TOP/source/gdb-$GDB_VERSION/gdb/gdbserver/configure target=$CLFS_TARGET host=$CLFS_TARGET# sed -i s|#define HAVE_SYS_REG_H|/#define HAVE_SYS_REG_H|g config.h# make CC=arm-linux-gcc# cp gdbserver $TARGET_PREFIX/bin# echo “The GDB Server binrary is copied into $TARGET_PREFIX/bin” | tee -a /make_cross.txt# echo ! All Well Done ! | tee -a /make_cross.txt# echo “The cross tool is at /usr/local/arm/4.2.1/bin directory, reboot the host please”自动创建工具链的脚本文件从“这里”下载,在运行脚本前确保网络是通的。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1