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

上传人:b****8 文档编号:30663028 上传时间:2023-08-19 格式:DOCX 页数:7 大小:16.90KB
下载 相关 举报
手工制作最新版armlinux交叉工具链.docx_第1页
第1页 / 共7页
手工制作最新版armlinux交叉工具链.docx_第2页
第2页 / 共7页
手工制作最新版armlinux交叉工具链.docx_第3页
第3页 / 共7页
手工制作最新版armlinux交叉工具链.docx_第4页
第4页 / 共7页
手工制作最新版armlinux交叉工具链.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

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

《手工制作最新版armlinux交叉工具链.docx》由会员分享,可在线阅读,更多相关《手工制作最新版armlinux交叉工具链.docx(7页珍藏版)》请在冰豆网上搜索。

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

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

手工制作最新版arm-linux交叉工具链

注意:

本文是在ubuntu10.04desktopi386操作系统上完成的,

1、准备目录和环境变量

#echo“1.PrepareDirectoriesandEnvironmentVariables”|tee~/make_cross.txt

# mkdir-p/usr/local/arm/{tars,source,4.2.1}

#grepHISTSIZE~/.bashrc||echo“exportHISTSIZE=5000″>>~/.bashrc

#.~/.bashrc

#apt-get-yinstallpatchtexinfom4flexbison

#apt-get-ybuild-depglib2.0

#apt-get-ybuild-depgcc-4.3

#grep‘TARGET_PREFIX’~/.bashrc||cat>>~/.bashrc<

exportTOP=/usr/local/arm

exportTAR=${TOP}/tars

exportCLFS=${TOP}/clfs

exportSYSROOT=${TOP}/4.2.1

exportTARGET_PREFIX=${TOP}/4.2.1

exportLINUX_VERSION=2.6.22.6

exportBINUTILS_VERSION=2.18

exportGLIBC_VERSION=2.6.1

exportGCC_VERSION=4.2.1

exportGDB_VERSION=7.0

exportCLFS_TARGET=”arm-linux”

exportPATH=${TARGET_PREFIX}/bin:

$PATH

unsetCFLAGS

unsetCXXFLAGS

EOF

#. ~/.bashrc

2、准备源码包

#echo“2.PrepareSourcePackages”|tee-a~/make_cross.txt

#whichwget||apt-get-yinstallwget

#cd/usr/local/arm/tars

#[-fbinutils-2.18.tar.bz2]||wgetftp:

//ftp.gnu.org/gnu/binutils/binutils-2.18.tar.bz2

#[-fbinutils-2.18-posix-1.patch]||wget

#[-fgcc-4.2.1.tar.bz2]||wgetftp:

//ftp.gnu.org/gnu/gcc/gcc-4.2.1/gcc-4.2.1.tar.bz2

#[-fgcc-4.2.1-cross_search_paths-1.patch]||wget

#[-fgcc-4.2.1-posix-1.patch]||wget

#[-fglibc-2.6.1.tar.bz2]||wgetftp:

//ftp.gnu.org/gnu/glibc/glibc-2.6.1.tar.bz2

#[-fglibc-ports-2.6.1.tar.bz2]||wgetftp:

//ftp.gnu.org/gnu/glibc/glibc-ports-2.6.1.tar.bz2

#[-fglibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch]||wget

#[-fglibc-2.6.1-cross_hacks-1.patch]||wget

#[-fglibc-2.6.1-hppa_nptl-1.patch]||wget

#[-fglibc-2.6.1-libgcc_eh-1.patch]||wget

#[-fglibc-2.6.1-localedef_segfault-1.patch]||wget

#[-fglibc-2.6.1-sysdep_cancel-1.patch]||wget

#[-flinux-2.6.22.tar.bz2]||wgetftp:

//ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.tar.bz2

#[-fgdb-7.0a.tar.bz2]||wgetftp:

//ftp.gnu.org/gnu/gdb/gdb-7.0a.tar.bz2

3、安装Linux内核头文件

#echo“3.InstallLinuxKernelHeaders”|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

#cdlinux-${LINUX_VERSION}

#makemainstone_defconfigARCH=arm

#makeinclude/linux/version.h

#cp-ainclude/{asm-generic,linux,mtd,scsi,sound} ${SYSROOT}/usr/include

#cp-ainclude/asm-arm ${SYSROOT}/usr/include/asm

4、编译安装binutils

#echo“4.CompileBinutils”|tee-a~/make_cross.txt

#mkdir-p${TARGET_PREFIX}

#cd${TOP}/source

#tar-jxf${TAR}/binutils-${BINUTILS_VERSION}.tar.bz2

#cdbinutils-${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}

#exportAR=ar

#exportAS=as

#sed-i‘s%\[0-9\]|4\\.\[4-9\]|\[5-9\]%\[0-9\]|4\\.\[4-9\]|4\\.\[1-9\]\[0-9\]*|\[5-9\]%g’ ${TOP}/source/binutils-${BINUTILS_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

#makeconfigure-host

#make

#makeinstall

#cp-v${TOP}/source/binutils-${BINUTILS_VERSION}/include/libiberty.h${SYSROOT}/usr/include

5、安装Glibc的头文件

#echo“5.InstalltheGlibcHeaders”|tee-a~/make_cross.txt

#cd${TOP}/source

#tar-jxf${TAR}/glibc-${GLIBC_VERSION}.tar.bz2

#mvglibc-${GLIBC_VERSION} glibc-${GLIBC_VERSION}-headers-build

#cdglibc-${GLIBC_VERSION}-headers-build

#cpconfigure{,.orig}

#sed-e‘s/3.4/3.[0-9]/g’configure.orig>configure

#tar-jxf${TAR}/glibc-ports-${GLIBC_VERSION}.tar.bz2

#mvglibc-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=yes”>>config.cache

#echo“libc_cv_arm_tls=yes”>>config.cache

#exportCC=gcc

#sed-i‘s%2.1\[3-9\]\*%2.1\[3-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–cache-file=config.cache

#makeinstall-headersinstall_root=${SYSROOT}

#cp-vbits/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/bits

6、编译gcc(第一阶段,生成临时arm-linux-gcc)

#echo“6.CompileGccFirstly”|tee-a~/make_cross.txt

#exportCC=gcc

#cd${TOP}/source

#tar-jxf${TAR}/gcc-${GCC_VERSION}.tar.bz2

#mvgcc-${GCC_VERSION}gcc-${GCC_VERSION}-stage1

#cdgcc-${GCC_VERSION}-stage1

#patch-Np1-i${TAR}/gcc-${GCC_VERSION}-posix-1.patch

#patch-Np1-i${TAR}/gcc-${GCC_VERSION}-cross_search_paths-1.patch

#cd${TOP}/source

#mkdir-pBUILD/gcc-${GCC_VERSION}-stage1

#cdBUILD/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-shared–enable-languages=c

#makeall-gcc

#makeinstall-gcc

7、编译库文件GLIBC

#echo“7.CompileGlibcLibraries”|tee-a~/make_cross.txt

#cd${TOP}/source

#tar-jxf${TAR}/glibc-${GLIBC_VERSION}.tar.bz2

#cdglibc-${GLIBC_VERSION}

#tar-jxf${TAR}/glibc-ports-${GLIBC_VERSION}.tar.bz2

#mvglibc-ports-${GLIBC_VERSION} ports

#patch-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-${GLIBC_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

#exportBUILD_CC=gcc

#exportCC=”${CLFS_TARGET}-gcc”

#exportAR=”${CLFS_TARGET}-ar”

#exportRANLIB=”${CLFS_TARGET}-ranlib”

#sed-i‘/#include“locfile-kw.h”/aconststructkeyword_t*locfile_hash(registerconstchar*str,registerunsignedintlen);’ ${TOP}/source/glibc-${GLIBC_VERSION}/locale/programs/locfile.c

#sed-i‘/#include“charmap-kw.h”/aconststructkeyword_t*charmap_hash(registerconstchar*str,registerunsignedintlen);’ ${TOP}/source/glibc-${GLIBC_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=config.cache

#make

#makeinstallinstall_root=${SYSROOT}

8、编译gcc(第二阶段,生成最终arm-linux-gcc)

#echo“8.CompileGccSecondly”|tee-a~/make_cross.txt

#exportCC=gcc

#cd${TOP}/source

#tar-jxf${TAR}/gcc-${GCC_VERSION}.tar.bz2

#mvgcc-${GCC_VERSION}gcc-${GCC_VERSION}-stage2

#cdgcc-${GCC_VERSION}-stage2

#patch-Np1-i${TAR}/gcc-${GCC_VERSION}-posix-1.patch

#patch-Np1-i${TAR}/gcc-${GCC_VERSION}-cross_search_paths-1.patch

#cd${TOP}/source

#mkdir-pBUILD/gcc-${GCC_VERSION}-stage2

#cdBUILD/gcc-${GCC_VERSION}-stage2

#${TOP}/source/gcc-${GCC_VERSION}-stage2/configure–prefix=${TARGET_PREFIX}–host=${MACHTYPE}–target=${CLFS_TARGET}–disable-multilib–with-sysroot=${SYSROOT}–disable-nls–enable-shared–enable-languages=c,c++–enable-__cxa_atexit–enable-c99–enable-long-long–enable-threads=posix

#makeall-gcc

#makeinstall-gccinstall_root=${TARGET_PREFIX}

9、编译GDB

#echo“9.CompileGDB”|tee-a~/make_cross.txt

#exportCC=gcc

#cd${TOP}/source

#tar-jxf${TAR}/gdb-${GDB_VERSION}a.tar.bz2

#apt-get-yinstalllibncurses5-dev

#mkdir-pBUILD/gdb-${GDB_VERSION}

#cdBUILD/gdb-${GDB_VERSION}

#echo“9.1.CompileGDBClient”|tee-a~/make_cross.txt

#${TOP}/source/gdb-${GDB_VERSION}/configure–target=${CLFS_TARGET} –prefix=${TARGET_PREFIX}

#make

#makeinstall

#echo“9.2.CompileGDBServer”|tee-a~/make_cross.txt

#exportCC=arm-linux-gcc

#mkdir-pgdbserver

#cdgdbserver

#${TOP}/source/gdb-${GDB_VERSION}/gdb/gdbserver/configure–target=${CLFS_TARGET} –host=${CLFS_TARGET}

#sed-i‘s|#defineHAVE_SYS_REG_H|//#defineHAVE_SYS_REG_H|g’config.h

#makeCC=arm-linux-gcc

#cpgdbserver${TARGET_PREFIX}/bin

#echo“TheGDBServerbinraryiscopiedinto${TARGET_PREFIX}/bin”|tee-a~/make_cross.txt

#echo‘!

!

!

!

AllWellDone!

!

!

!

!

’|tee-a~/make_cross.txt

#echo“Thecrosstoolisat/usr/local/arm/4.2.1/bindirectory, rebootthehostplease”

自动创建工具链的脚本文件从“这里”下载,在运行脚本前确保网络是通的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 营销活动策划

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

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