交叉编译环境的建立

 交叉编译环境的建立
2007-05-25 13:12:36
    昨天说到了想自己建立一个交叉编译环境来编译u-boot,但是失败。今天继续解决这个问题。[truncate]
    首先从网上找到了arm-linux-gcc3.4.1(http://www.handhelds.org/download/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2),安装成功。
    接着开始编译u-boot1.2。因为我打算以B2为基础增加自己的开发板,所以我首先尝试着编译B2。
    make distclean;make B2_config;make
    但是错误出现了:
    lib_arm/libarm.a(_udivsi3.o)(.text+0x8c):/home/qsg/u-boot-1.2.0/lib_arm/_udivsi3.S:67: relocation truncated to fit: R_ARM_PLT32 __div0
    lib_arm/libarm.a(_umodsi3.o)(.text+0xa8):/home/qsg/u-boot-1.2.0/lib_arm/_umodsi3.S:79: relocation truncated to fit: R_ARM_PLT32 __div0
    make: *** [u-boot] Error 1
    u-boot中著名的softfloat问题。
    根据网上的资料,我尝试着修改cpu/s3c44b0/config.mk中对应的-msoftfloat去掉,重新编译。错误依旧。
    后来在www.linuxforum.net上面找到vxworks告知的解决方法:自己编译一个arm-softfloat-linux-gnu-3.4.1。
    从http://kegel.com/crosstool/上面下载了一个最新的crosstoool(crosstool-0.43.tar.gz)。
    安装很简单,大致步骤如下(需要注意的是,crosstool不允许以root用户安装):
    我使用了它默认的配置,所以依次进行了如下操作:
    1、解压:tar zxf crosstool-0.43.tar.gz
    2、在/home/qsg/目录下创建downloads目录(这个目录用于存放安装中需要下载的软件包,如果你自己下载需要binutils,gcc,glibc,linux,linux-libc-headsers,glibc-linuxthreads,各个软件的版本可以从对应的gcc-X.X.X-glibc-X.X.X.dat文件中获得。如果你自己下载软件包将其放到downloads目录里面,安装程序就会略过下载过程,否则它会自动下载各个需要的软件包)。
    3、以root身份创建/opt/crosstool/,并将目录属主改为qsg(我以qsg这个用户进行安装):mkdir -p /opt/crosstool/;chown qsg:qsg /opt/crosstool/
    4、进入到crosstool目录,执行demo-arm-softfloat.sh:sh demo-arm-softfloat.sh。
    等段一个比较长的时间,工具链就安装成功。
    然后修改PATH:在命令行下执行export  PATH=/opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/:$PATH
    然后进入u-boot-1.2.0目录,修改Makefile文件,将使用的交叉编译器从arm-linux-改为arm-softfloat-linux-gnu-。
    重新编译B2,成功!接下来就是模仿B2开始加入自己的开发板了。因为我的开发板也是使用的S3C44B0,所以以B2为蓝本构建。

有如下方法是可以的:
make CROSS_COMPILE=/home/dengjun/at91rm9200dk/toolchain/....

也可以将那两行注释掉.

还可以bl __div0 (PLT) ===> bl __div0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值