新闻  |   论坛  |   博客  |   在线研讨会
构建ARM平台的交叉工具链第二部分
zxw54007 | 2010-01-21 09:32:33    阅读:858   发布文章

构建ARM平台的交叉工具链第二部分

 

解决办法:

[root@localhost crosstool-0.43]# su mike      //切换到普通用户mike

[mike@localhost crosstool-0.43]$ ./arm.sh

+ TARBALLS_DIR=/home/mike/downloads

+ RESULT_TOP=/opt/crosstool

+ export TARBALLS_DIR RESULT_TOP

+ GCC_LANGUAGES=c,c++

+ export GCC_LANGUAGES

+ mkdir -p /opt/crosstool

++ cat arm.dat gcc-3.4.5-glibc-2.3.6.dat

+ eval 'KERNELCONFIG=`pwd`/arm.config' TARGET=arm-linux 'TARGET_CFLAGS="-O"' BINUTILS_DIR=binutils-2.15 GCC_DIR=gcc-3.4.5 GLIBC_DIR=glibc-2.3.6 LINUX_DIR=linux-2.6.28.2 LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 sh all.sh --notest

+++ pwd

++ KERNELCONFIG=/home/mike/crosstool-0.43/arm.config

++ TARGET=arm-linux

++ TARGET_CFLAGS=-O

++ BINUTILS_DIR=binutils-2.15

++ GCC_DIR=gcc-3.4.5

++ GLIBC_DIR=glibc-2.3.6

++ LINUX_DIR=linux-2.6.28.2

++ LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0

++ GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2

++ sh all.sh --notest

You set both LINUX_DIR and LINUX_SANITIZED_HEADER_DIR - ignoring LINUX_DIR for the build

DEJAGNU not set, so not running any regression tests

GCC_EXTRA_CONFIG not set, so not passing any extra options to gcc's configure script

GLIBC_ADDON_OPTIONS not set, so building all glibc add-on's

+ TOOLCOMBO=gcc-3.4.5-glibc-2.3.6

++ pwd

+ BUILD_DIR=/home/mike/crosstool-0.43/build/arm-linux/gcc-3.4.5-glibc-2.3.6

++ pwd

+ TOP_DIR=/home/mike/crosstool-0.43

+ test -z ''

+ SRC_DIR=/home/mike/crosstool-0.43/build/arm-linux/gcc-3.4.5-glibc-2.3.6

+ echo 'SRC_DIR not set, so source tarballs will be unpacked in the build directory'

SRC_DIR not set, so source tarballs will be unpacked in the build directory

+ test -w /tmp

+ TARBALLS_DIR=/home/mike/downloads

+ RESULT_TOP=/opt/crosstool

+ PREFIX=/opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux

+ export TOOLCOMBO

+ export PREFIX

+ export BUILD_DIR

+ export SRC_DIR

+ export TARBALLS_DIR

+ export TOP_DIR

+ '[' 1 -gt 0 ']'

+ opt_no_test=1

+ shift

+ '[' 0 -gt 0 ']'

+ test '' = 1

+ test '' = ''

+ test '' = 1

+ test -d /home/mike/crosstool-0.43/build/arm-linux/gcc-3.4.5-glibc-2.3.6

+ mkdir -p /home/mike/crosstool-0.43/build/arm-linux/gcc-3.4.5-glibc-2.3.6

mkdir: cannot create directory `/home/mike/crosstool-0.43/build': Permission denied

[mike@localhost crosstool-0.43]$ su 

Password: 

[root@localhost crosstool-0.43]# ./arm.sh  

问题二:S3C2440芯片没有硬件浮点数(hardfloat),很多软件只能采用软件浮点数(softfloat)的编译器编译,恰巧现在高版本的u-boot只能采用支持softfloat的交叉编译器编译,否则会在编译结束前的链接那一步出现不支持softfloat的错误。

解决办法:要解决这个错误的唯一办法就是采用支持softfloat的交叉编译器编译uboot。下面来说一下制作softfloat的具体过程。

和上述制作交叉编译器过程一样,不同之处:1.修改arm.dat内容如下,参考arm-softfloat.dat内容修改。

KERNELCONFIG=`pwd`/arm.config

TARGET=arm-softfloat-linux

TARGET_CFLAGS="-O"

GCC_EXTRA_CONFIG="--with-float=soft"

GLIBC_EXTRA_CONFIG="--without-fp"

编译完之后,会在/opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux/bin生成支持softfloat的交叉编译器,如下所示。

arm-softfloat-linux-addr2line arm-softfloat-linux-g++ arm-softfloat-linux-ld       arm-softfloat-linux-size              arm-softfloat-linux-ar         arm-softfloat-linux-gcc        arm-softfloat-linux-nm  arm-softfloat-linux-strings arm-softfloat-linux-as         arm-softfloat-linux-gcc-3.4.5        arm-softfloat-linux-objcopy     arm-softfloat-linux-strip

arm-softfloat-linux-c++      arm-softfloat-linux-gccbug     arm-softfloat-linux-objdump  fix-embedded-paths  arm-softfloat-linux-c++filt    arm-softfloat-linux-gcov       arm-softfloat-linux-ranlib arm-softfloat-linux-cpp        arm-softfloat-linux-gprof      arm-softfloat-linux-readelf



文章来源:www.top-e.org

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客