GNU交叉工具链armlinuxgcc3.docx
- 文档编号:14259417
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:9
- 大小:17.98KB
GNU交叉工具链armlinuxgcc3.docx
《GNU交叉工具链armlinuxgcc3.docx》由会员分享,可在线阅读,更多相关《GNU交叉工具链armlinuxgcc3.docx(9页珍藏版)》请在冰点文库上搜索。
GNU交叉工具链armlinuxgcc3
GNU交叉工具链(arm-linux-gcc3.4.4)
分类:
交叉开发环境
2007.10.1313:
15作者:
bjy_01|评论:
0|阅读:
1187
来源:
1Linux下工作用户及环境
1.1软件环境
Linuxubuntu6.06LTS
Kernelversion2.6.15-23-686
gccversion4.0.3(Ubuntu4.0.3-1ubuntu5)
GNUMake3.81
msgfmt(GNUgettext-tools)0.14.5
makeinfo(GNUtexinfo)4.8
GNUM41.4.4
flex2.5.31
GNUAwk3.1.5
perl,v5.8.7
GNUsedversion4.1.4
gettext(GNUgettext-runtime)0.14.5
autoconf(GNUAutoconf)2.59
automake(GNUautomake)1.4-p6
1.2编译相关配置
1.添加工作用户(在root用户下)
root@ubuntu:
~#useradd-Groot-groot-d/home/armarm
root@ubuntu:
~#mkdir-p/home/arm
root@ubuntu:
~#chown-Rarm/home/arm
root@ubuntu:
~#chmod-R775/home/arm
2.建立工作目录(用arm用户登陆)
arm@ubuntu:
~$mkdirdev_home
arm@ubuntu:
~$cddev_home
arm@ubuntu:
~/dev_home$mkdirbtoolskernel
3.登陆时启动环境变量(用root用户登陆)
root@ubuntu:
~#vi~/.bashrc
在.bashrc最后加上
exportPATH=/usr/local/arm/3.4.4/bin:
$PATH
arm@ubuntu:
~/dev_home$
重新登陆arm用户,环境变量生效
arm@ubuntu:
~$suarm
2.设置环境变量,准备源码及相关补丁
2.1设置环境变量
arm@ubuntu:
~$vi~/.bashrc
exportPREFIX=/usr/local/arm/3.4.4
exportTARGET=arm-linux
exportSYSROOT=${PREFIX}/sysroot
exportARCH=arm
exportCROSS_COMPILE=${TARGET}-
exportPATH=${PREFIX}/bin:
$PATH
exportSRC=/home/arm/dev_home/btools/tchain3.4.4
注意:
如果你已经安装过arm-linux-gcc,并且已经加入了环境变量中,将其从环境中去掉保证root用户和arm用户环境中没有arm-linux-gcc
2.2准备源码包
2.2.1binutils
名称:
binutils-2.16.tar.gz
tar.gz
下载地址:
http:
//ftp.gnu.org/gnu/binutils/binutils-2.16.tar.gz
2.2.2gcc
名称:
gcc-3.4.4.tar.bz2
下载地址:
http:
//ftp.gnu.org/gnu/gcc/gcc-3.4.4/gcc-3.4.4.tar.bz2
2.2.3glibc
名称:
glibc-2.3.5.tar.gz
glibc-linuxthreads-2.3.5.tar.gz
下载地址:
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
2.2.4linuxkernel
名称:
linux-2.6.14.1.tar.bz2
下载地址:
http:
//ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.1.tar.bz2
2.2.5gdb
名称:
gdb-6.4.tar.gz
下载地址:
http:
//ftp.gnu.org/pub/gnu/gdb/gdb-6.4.tar.gz
2.3准备补丁
2.3.1ioperm.c.diff
作用:
打修正ioperm()函数
下载地址:
http:
//frank.harvard.edu/~coldwell/toolchain/ioperm.c.diff
2.3.2flow.c.diff
作用:
修改gcc一处bug
下载地址:
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
2.3.3t-linux.diff
作用:
该补丁用于产生crti.o和crtn.o文件.
下载地址:
http:
//frank.harvard.edu/~coldwell/toolchain/t-linux.diff
2.4编译GNUbinutils
重新以arm用户登陆,让新设置得环境变量起作用
arm@ubuntu:
~/dev_home/btools/tchain3.4.4$tree-L1
.
|--BUILD
|--binutils-2.16
|--binutils-2.16.tar.gz
|--flow.c.diff
|--gcc-3.4.4
|--gcc-3.4.4.tar.bz2
|--gdb-6.4.tar.gz
|--glibc-2.3.5
|--glibc-2.3.5.tar.gz
|--glibc-linuxthreads-2.3.5.tar.gz
|--ioperm.c.diff
|--linux-2.6.14.1.tar.bz2
`--t-linux.diff
arm@ubuntu:
~$suarm
arm@ubuntu:
~$cd${SRC}
arm@ubuntu:
~/dev_home/btools/tchain3.4.4$tarzxvfbinutils-2.16.tar.gz
arm@ubuntu:
~/dev_home/btools/tchain3.4.4$mkdir-pBUILD/binutils-2.16
arm@ubuntu:
~/dev_home/btools/tchain3.4.4$cdBUILD/binutils-2.16
arm@ubuntu:
~/dev_home/btools/tchain3.4.4/BUILD/binutils-2.16$../../binutils-2.16/configure--prefix=${PREFIX}--target=${TARGET}--with-sysroot=${SYSROOT}
arm@ubuntu:
~/dev_home/btools/tchain3.4.4/BUILD/binutils-2.16$make
arm@ubuntu:
~/dev_home/btools/tchain3.4.4/BUILD/binutils-2.16$suroot
root@ubuntu:
/home/arm/dev_home/btools/tchain3.4.4/BUILD/binutils-2.16#makeinstall
root@ubuntu:
/home/arm/dev_home/btools/tchain3.4.4/BUILD/binutils-2.16#exit
arm@ubuntu:
~/dev_home/btools/tchain3.4.4/BUILD/binutils-2.16$
2.5准备内核头文件
2.5.1使用当前平台的gcc编译内核头文件
arm@ubuntu:
~/dev_home/btools/tchain3.4.4/BUILD/binutils-2.16$cd${KERNEL}
arm@ubuntu:
~/dev_home/kernel$
arm@ubuntu:
~/dev_home/kernel$tarjxvf../btools/tchain3.4.4/linux-2.6.14.1.tar.bz2
arm@ubuntu:
~/dev_home/kernel$cdlinux-2.6.14.1/
arm@ubuntu:
~/dev_home/kernel/linux-2.6.14.1$cparch/arm/configs/smdk2410_defconfig.config
本人是用的CPU是S3C2410,选择了一个配置文件smdk2410_defconfig,你可以根据你的需要选择
arm@ubuntu:
~/dev_home/kernel/linux-2.6.14.1$makeARCH=armmenuconfig
SystemType--->
ARMsystemtype(SamsungS3C2410)--->
S3C24XXImplementations--->
[]SimtecElectronicsANUBIS
[]SimtecElectronicsBAST(EB2410ITX)
[]IPAQH1940
[]AcerN30
[*]SMDK2410/A9M2410
[]SMDK2440
[]ThorcomVR1000
[]HPiPAQrx3715
[]NexVisionOTOMBoard
[]NexVisionNEXCODER2440LightBoard
---S3C2410Boot
---S3C2410Setup
[]S3C2410DMAsupport
(0)S3C2410UARTtouseforlow-levelmessages
---ProcessorType
---ProcessorFeatures
[*]SupportThumbuserbinaries
[]DisableI-Cache
[]DisableD-Cache
[]ForcewritethroughD-cache
退出时
Doyouwishtosaveyournewkernelconfiguration?
选择Yes
arm@ubuntu:
~/dev_home/kernel/linux-2.6.14.1$make
2.5.2复制内核头文件
arm@ubuntu:
~/dev_home/kernel/linux-2.6.14.1$suroot
root@ubuntu:
/home/arm/dev_home/kernel/linux-2.6.14.1#mkdir-p${SYSROOT}/usr/include
root@ubuntu:
/home/arm/dev_home/kernel/linux-2.6.14.1#cp-ainclude/linux${SYSROOT}/usr/include/linux
root@ubuntu:
/home/arm/dev_home/kernel/linux-2.6.14.1#cp-ainclude/asm-arm${SYSROOT}/usr/include/asm
root@ubuntu:
/home/arm/dev_home/kernel/linux-2.6.14.1#cp-ainclude/asm-generic${SYSROOT}/usr/include/asm-generic
root@ubuntu:
/home/arm/dev_home/kernel/linux-2.6.14.1#exit
arm@ubuntu:
~/dev_home/kernel/linux-2.6.14.1$
2.6编译glibc头文件
arm@ubuntu:
~/dev_home/kernel/linux-2.6.14.1$cd${SRC}
arm@ubuntu:
~/dev_home/btools/tchain3.4.4$tarzxvfglibc-2.3.5.tar.gz
arm@ubuntu:
~/dev_home/btools/tchain3.4.4$patch-dglibc-2.3.5-p1 arm@ubuntu: ~/dev_home/btools/tchain3.4.4$cdglibc-2.3.5 arm@ubuntu: ~/dev_home/btools/tchain3.4.4/glibc-2.3.5$tarzxvf../glibc-linuxthreads-2.3.5.tar.gz arm@ubuntu: ~/dev_home/btools/tchain3.4.4/glibc-2.3.5$cd.. arm@ubuntu: ~/dev_home/btools/tchain3.4.4$mkdir-pBUILD/glibc-2.3.5-headers arm@ubuntu: ~/dev_home/btools/tchain3.4.4$cdBUILD/glibc-2.3.5-headers/ arm@ubuntu: ~/dev_home/btools/tchain3.4.4/BUILD/glibc-2.3.5-headers$../../glibc-2.3.5/configure--prefix=/usr--host=${TARGET}--enable-add-ons=linuxthreads--with-headers=${SYSROOT}/usr/include arm@ubuntu: ~/dev_home/btools/tchain3.4.4/BUILD/glibc-2.3.5-headers$suroot root@ubuntu: /home/arm/dev_home/btools/tchain3.4.4/BUILD/glibc-2.3.5-headers#makecross-compiling=yesinstall_root=${SYSROOT}install-headers root@ubuntu: /home/arm/dev_home/btools/tchain3.4.4/BUILD/glibc-2.3.5-headers#touch${SYSROOT}/usr/include/gnu/stubs.h root@ubuntu: /home/arm/dev_home/btools/tchain3.4.4/BUILD/glibc-2.3.5-headers# touch${SYSROOT}/usr/include/bits/stdio_lim.h root@ubuntu: /home/arm/dev_home/btools/tchain3.4.4/BUILD/glibc-2.3.5-headers#exit arm@ubuntu: ~/dev_home/btools/tchain3.4.4/BUILD/glibc-2.3.5-headers$ 2.7编译gcc第一阶段 arm@ubuntu: ~/dev_home/btools/tchain3.4.4/BUILD/glibc-2.3.5-headers$cd${SRC} arm@ubuntu: ~/dev_home/btools/tchain3.4.4$tarjxvfgcc-3.4.4.tar.bz2 arm@ubuntu: ~/dev_home/btools/tchain3.4.4$patch-dgcc-3.4.4-p1 arm@ubuntu: ~/dev_home/btools/tchain3.4.4$patch-dgcc-3.4.4-p1 arm@ubuntu: ~/dev_home/btools/tchain3.4.4$mkdir-pBUILD/gcc-3.4.4-stage1 arm@ubuntu: ~/dev_home/btools/tchain3.4.4$cdBUILD/gcc-3.4.4-stage1/ arm@ubuntu: ~/dev_home/btools/tchain3.4.4/BUILD/gcc-3.4.4-stage1$../../gcc-3.4.4/configure--prefix=${PREFIX}--target=${TARGET}--enable-languages=c--with-sysroot=${SYSROOT} 注意: 不能加上--disable-shared arm@ubuntu: ~/dev_home/btools/tchain3.4.4/BUILD/gcc-3.4.4-stage1$makeall-gcc arm@ubuntu: ~/dev_home/btools/tchain3.4.4/BUILD/gcc-3.4.4-stage1$suroot root@ubuntu: /home/arm/dev_home/btools/tchain3.4.4/BUILD/gcc-3.4.4-stage1#makeinstall-gcc root@ubuntu: /home/arm/dev_home/btools/tchain3.4.4/BUILD/gcc-3.4.4-stage1#exit arm@ubuntu: ~/dev_home/btools/tchain3.4.4/BUILD/gcc-3.4.4-stage1$
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GNU 交叉 工具 armlinuxgcc3