Chinaunix首页 | 论坛 | 博客
  • 博客访问: 806266
  • 博文数量: 244
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 2420
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-29 09:07
文章分类

全部博文(244)

文章存档

2011年(4)

2010年(3)

2009年(72)

2008年(119)

2007年(46)

我的朋友

分类: LINUX

2007-11-02 17:56:46

1. 交叉编译
Crosscompile的意义在于在当前的系统下,编译出一套,可以在当前系统下运行的 gcc 和 libc ,而用这些东西,在当前系统下编译出适合目的 系统 用的可执行程序。


--with-cpu=CPU
在 gcc 命令行中加入"-mcpu=CPU"。鉴于"-mcpu"已经被反对使用,所以建议不要设置该选项,或者设为 --without-cpu 。
--without-tls
禁止编译支持线程本地存储(TLS)的库。使用这个选项将导致兼容性问题。
--enable-tls
指定目标系统支持TLS(线程本地存储),一般情况下不需要明确指定这个选项,因为 configure 脚本可以自动检测。仅在你认为检测不正确的情况下才使用这个选项明确指定。
--enable-cxx-flags=FLAGS
编译 libstdc++ 库文件时传递给编译器的编译标志,是一个引号界定的字符串。默认为空,表示使用环境变量 CXXFLAGS 的值
Binutils与GCC配置选项简介

Glibc Binutils GCC 配置选项简介

2 工具链
工具链的获取途径
从stracths自己制作工具链
从网络下载工具链
用网络下载的脚步自动生成工具链
用oe制作工具链


2.1.1 从stracths自己制作工具链
2.1.1.1 在ubuntu下动手编译arm-elf工具
来源:
最近,再次拜读了youbest版主的大作——CLFS2.0原理分析,又结合Cross-Compiled Linux From Scratch - Version SVN-2.0.0-20060808-ARM一书的详细过程,觉得受益匪浅。自己也看了一些关于Linux系统的移植的文章,就有了一些疑问。
2.1.1.2 自己制作arm-linux交叉编译环境(一)-2.1.1.3 scratch篇
来源:http://blog.csdn.net/chenzhixin/archive/2007/01/12/1481442.aspx
交叉编译是指在一台电脑上来编译另一种结构的电脑上的代码,编译生成的程序不是运行在本机上的,而是另一种结构的机子上(^_^,快晕了...),打个比方吧,比如我的系统是x86结构的,如果我需要编译一个arm结构的程序,那编译器等就都要重新弄过了,这个编译过程就叫做 交叉编译,在嵌入式开发中就必须要交叉编译,在开发主机x386上开发arm目标机上可以运行的代码
在<<嵌入式linux系统开发技术详解-基于arm>>这本书中,有一章是将怎样制作自己的交叉编译环境的,不过用的是gcc2.95,很早以前的东西了,而且不能编译linux.2.6的内核,为了锻炼自己,我就打算自己编译下,在网上一搜索,都是差不多的文章,比如 一步步制作自己的交叉编译环境,等,但版本都比较低,我想用最新的版本来编译,经过几天的google,发现个crosstool比较好用,只要稍微改动下就能自动编译,目前最新版本为0.43,最高支持gcc-4.1.1-glibc-2.3.6,下载地址为:
还有个LFS工程,这个工程是教会大家怎样从代码制作自己的小linux系统的,主页为 ,这个工程包含很多小工程,其中的CFLS是专门为跨平台用的(Cross Linux From Scratch) ,clfs sysroot 是用来测试新的编译方法的,SVN版本已经包含了对最新软件包的支持
BOOK下载地址为:
编译的时候用到的补丁包 :
编译用的软件包:

由于编译过程复杂,又可能碰到一些莫名其妙的错误,所以最好还是用别人已经弄好的
(arm-elf-toolchain)
)
强烈建议编译的过程中边编译边看clfs-sysroot文档中的cross-compier tool,也就是第5章,因为我是新手,不能保证编译的过程中会没有错误,或者编译后无法使用等等,所以.......
0:准备好所要用到的资料和其他准备工作
   1). 首页要准备好编译用的软件包:
      
    binutils-2.17.tar.bz2        
    gcc-4.1.1-tar.bz2            
    glibc-2.5.tar.bz2             
    glibc-ports-2.5.tar.bz2    
    gdb-6.6.tar.bz2              
    linux-header-2.6.20-rc4   (补丁自己打)

来源:
1。两种不同的方式,哪种更好?
在ARM上移植Linux系统,大体步骤是:移植Bootloader,Linux kernel移植,文件系统的移植。
在ARM上创建Linux系统,好像是先创建文件系统和安装必要的工具包,然后再去配置和编译内核。斗胆的问一句:这种方式做出的Linux系统能在ARM平台上跑起来么?
2。在ARM上创建Linux系统,因为针对ARM平台有好几个型号的处理器,而export CLFS_TARGET="arm-unknown-linux-gnu"对目标平台只是一个unknown,对后面的工作有影响么?
3。在ARM上创建Linux系统,到最后的时候才去配置和编译内核,在这一步才确定所用的处理器的具体型号,但再第六章已经完成了一些包的编译安装的工作,这有什么不妥么?这对整个创建的系统有影响么?
4。在ARM上创建Linux系统,有没有考虑在ARM目标平台上所使用的文件系统?一般ARM上都是flash的存储器。
5。在ARM上创建Linux系统,如果我想去装一个应用程序,是在第六章去编译安装么。



2.1.2 从网络下载工具链

直接通过网上下载已经制作好的交叉编译工具链。该方法的优点是简单省事,但与此同时该方法有一定的弊端就是局限性太大,因为毕竟是别人构建好的,也就是固定的没有灵活性,所以构建所用的库以及编译器的版本也许并不适合你要编译的程序,同时也许会在使用时出现许多莫名的错误,建议读者慎用此方法
2.1.2.1 Sourcery G++
是一种完善、可靠、方便的基于GNU工具链的软件开发环境。
完善性:
它能够提供创建应用程序的一切工具,包含一个增强的基于Eclipse的集成开发环境和一个完整的GUN工具链:优化的ISO C/C++ 编译器,一个灵活的汇编器,一个强大的连接器,实时库,一个基于汇编级的源代码调试器。Sourcery G++可以在GNU / Linux和微软Windows上运行。支持多种CPU芯片和操作系统.
 
可靠性:
Sourcery G++包含了最新的对GNU 工具链的改进。CodeSourcery 已经在它的extensive hardware lab上通过很多的测试对Sourcery G++进行了验证。CodeSourcery同时提供更广泛的支持。
   
方便性:
通过 Sourcery G++ graphical installer就可以安装Sourcery G++,很方便的用Sourcery G++ IDE来编译和调试我们的应用程序。
Sourcery G++有专业版(企业版)和个人版,可以通过Compare Sourcery G++ editions 来决定哪个版本对自己最合适。
GNU C & C++ Compilers
GNU Assembler & Linker
C & C++ Runtime Libraries
GNU Debugger
Debug Sprites
Eclipse IDE
Access to Updates
GNU/Linux Prelinker
Unlimited Support(个人版本没有)
企业版本和个人版本没什么大的区别,以上的特性基本上都具有,唯一不同的是企业版能无限支持。
我们可以通过:下载最新版本
我现在制作出了GCC 4.1.x的toolchain,我知道从GCC 4.0.x开始就支持EABI了,但是我希望制作一个使用EABI的根文件系统。
通过测试我也已经确认,使用Gcc 4.1.x编译内核,在不开启EABI Feature的情况下,可以在使用Gcc 3.4.x制作的根文件系统中运行。
问题是,我需要开启EABI Feature编译内核,但这要求一个支持EABI的根文件系统,有谁有类似的经验?
嵌入式Linux开发中使用的CPU速度往往向对不会太高,因此,尽可能提高代码的性能就非常必要。通常开发人员应该对该CPU的具体型号有一定的了解,以便启用编译器中对该型号的优化,以ARM为例,我们可以通过 -march=armv5te 和 -mtune=arm9tdmi 来对代码在ARM9上的运行进行优化。有时这些优化体现出来的性能改善是比较大的,我曾对比过一些复杂算法的代码优化前后的性能(执行速度),都有一定的提升
2.1.2.2 arm-linux-gcc-3.4.1.tar.bz2下载




2.1.3 用网络下载的脚步自动生成工具链

buildroot-20070205
用于生成linux操作系统下的交叉编译工具链和嵌入式linux系统的根文件系统,支持x86、arm、powerpc等处理器
来源:
 
croostool-0.43
下载地址: (tarball)
Howto文档:
制作工具链的tarball搭配情况:
详细步骤,以制作制作arm-linux-gcc-3.4.5-glibc-2.3.5工具链为例子.
制作之前确保你的机子上有如下几个工具:bison flex build-essential。build-essential 主要是用于提供GCC、GLIBC等必要的编译资源,一般做开发的人员机子上应该都会有的。如果没有,对于ubuntu用户:sudo apt-get install build-essential bison flex.
用croostool-0.43制作arm-linux-gcc-3.4.4-glibc-2.3.5工具链
cd /opt/workspace/croostool-0.43
vim demo-arm.sh
以下两个变量可以修改成自己需要的目录:
TARBALLS_DIR=/opt/workspace/downloads
RESULT_TOP=/opt/workspace/toolchains
如果需要编译哪个版本工具链那就把以#开头的如下条目打开
eval `cat arm.dat gcc-3.4.4-glibc-2.3.5.dat` sh all.sh --notest
我编译的是
arm-linux-gcc-3.4.4-glibc-2.3.5 工具链,所有打开的选项是:
eval `cat arm.dat gcc-3.4.4-glibc-2.3.5.dat` sh all.sh --notest
这样就会把下载到/opt/workspace/downloads目录下的tarball(gcc-3.4.5.tar.bz2 glibc-2.3.5.tar.bz2
binutils-2.15.tar.bz2 linux-libc-headers-2.6.12.0.tar.bz2 )解压缩到目录
/opt/workspace/crosstool-0.43/build/arm-unknown-linux-gnu/gcc-3.4.5-glibc-2.3.5
如果/opt/workspace/downloads没有这些包,那么将会从网上下载,如果编译的时候不需要每次都作解包这个步骤,那么我们可以在eval `cat arm.dat gcc-3.4.4-glibc-2.3.5.dat` sh all.sh --notest 后面机上--nounpack的选项
gcc-3.4.5.tar.bz2 glibc-2.3.5.tar.bz2 binutils-2.15.tar.bz2 linux-libc-headers-2.6.12.0.tar.bz2 这些包的版本由 gcc-3.4.4-glibc-2.3.5.dat文件的内容决定,我们可以自己修改,但是建议使用默认的,否则在生成工具链的时候会出错,如果非要修改那么可以参考这个表
对于arm-linux-gcc-3.4.4-glibc-2.3.5这个工具链可以做如下修改:
gcc-3.4.4-glibc-2.3.5.dat原有内容:
BINUTILS_DIR=binutils-2.15
GCC_DIR=gcc-3.4.4
GLIBC_DIR=glibc-2.3.5
LINUX_DIR=linux-2.6.8
LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.5
可以修改为:
BINUTILS_DIR=binutils-2.16
GCC_DIR=gcc-3.4.4
GLIBC_DIR=glibc-2.3.5
LINUX_DIR=linux-2.6.14.1
LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.5
GDB_DIR=gdb-6.4
----------------
通过以上修改以后,可以执行
./demo-arm.sh
那么就会在/opt/workspace/toolchains/gcc-3.4.4-glibc-2.3.5/目下下生成arm-unknown-linux-gnu的工具链。工具链我们可以直接使用,也可以集成到scratchbox中使用

--------------------------------
Building arm-linux toolchain for ARM/XScale-iWMMXt
http://blog.chinaunix.net/u/26710/showart_394113.html


2.1.4用openembedded制作交叉工具链

Creating OE toolchain




编译arm9tdmi的工具链
cd /home/oe/org.openembedded.dev/conf/machine
拷贝一个配置相近的文件
cp corgi.conf  anyka.conf
--MACHINE_GUI_CLASS = "smallscreen"
++GUI_MACHINE_CLASS = "smallscreen"
--MACHINE_DISPLAY_WIDTH_PIXELS = "240"
--MACHINE_DISPLAY_HEIGHT_PIXELS = "320"
--PREFERRED_PROVIDER_virtual/kernel = "linux-h6300-omap1"
++PREFERRED_PROVIDER_virtual/kernel = "linux"
--MACHINE_FEATURES = "kernel26 touchscreen apm alsa irda bluetooth wifi usbgadget screen"
++MACHINE_FEATURES = "kernel26 touchscreen apm alsa bluetooth wifi usbgadget screen"
--MACHINE_EXTRA_RRECOMMENDS = "kernel-module-omapts \
                             kernel-module-omap-keypad \
                             kernel-module-h6300-bt"
++MACHINE_EXTRA_RRECOMMENDS = ""
--module_autoload_omapts = "omapts"
--module_autoload_omap-keypad = "omap-keypad"
--module_autoload_hci_uart = "hci_uart"
--module_autoload_h6300_bt = "h6300_bt"
--module_autoload_l2cap = "l2cap"
--module_autoload_snd-omap-alsa-tsc2101 = "snd-omap-alsa-tsc2101"

less /home/oe/org.openembedded.dev/conf/distro/
angstrom-2007.1.conf

新建配置文件目录
mkdir -p build_anyka/conf
拷贝local文件
cp build_a780/conf/local.conf build_anyka/conf
. env-oe.sh anyka
cp build_a780/conf/local.conf build_anyka/conf/
vim build_anyka/conn/local.conf
--MACHINE = "aaaa"
++MACHINE = "anyka"
# Don't use symlinks in in the path to avoid problems
--TMPDIR = /home/oe/build_${MACHINE}
++TMPDIR = /media/linux/oe/build_${MACHINE}
TMPDIR = /media/linux/oe/build_${MACHINE}
--MACHINE = "a780"
++MACHINE="anyka"
--#TARGET_OS = "linux-gnueabi"
++TARGET_OS = "linux-gnueabi"
--TARGET_OS = "linux"
++#TARGET_OS = "linux"
cd $TMPDIR

修改
bitbake.conf文件
/home/oe/org.openembedded.dev/conf
vim bitbake.conf
-OVERRIDES = "local:${MACHINE}:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:fail-fast:pn-${PN}"
# Alternative OVERRIDES definition without "fail fast", usually only for native building and Scratchbox toolchains.
+OVERRIDES = "local:${MACHINE}:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:pn-${PN}"


bitbake meta-toolchain
重新remount
sudo mount /media/linux/ -o remount,exec
sudo apt-get install python-psyco
cd org.openembedded.dev/
mtn merge
mtn up
mtn revert --missing
mtn up
mtn revert conf/distro/angstrom-2007.1.conf
joe conf/distro/angstrom-2007.1.conf
vim conf/distro/angstrom-2007.1.conf


QA Issue: non debug package contains .debug directory: binutils-cross-sdk path QA Issue: non debug package contains .debug directory: binutils-cross-sdk path /work/i686-armv4t-sdk-angstrom-linux-gnueabi/binutils-cross-sdk-2.18-r2/install/binutils-cross-sdk/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/.debug/as


sudo apt-get install help2mam

 bitbake -c clean -b binutils-cross-sdk_2.18.bb




集成工具链到scrachbox
/scratchbox/sb-toolchain-extras/confhelper/create_toolchain_conf.py > 
/scratchbox/sb-toolchain-extras/meta/alien-tc/marvell.conf
vi oe-gcc.conf
make CONFIG=meta/alien-tc/marvell.conf -C meta/alien-tc all-sums
make CONFIG=meta/alien-tc/marvell.conf -C meta/alien-tc
make CONFIG=meta/alien-tc/marvell.conf -C toolchain/post-install/ install
参考文档:






如果出现类似这样的错误:
/scratchbox/host_shared/lib/libc.so.6: version `GLIBC_2.4' not found (required by /scratchbox/compilers/oe-x86-new2/bin/sbox-i486-linux-gcc)
那么将需要替换 /scratchbox/host_shared/lib 下的一些库
cp /scratchbox/compilers/oe-x86-new2/i486-linux/lib/libc-2.5.so  ./ -rf
ln -svf libc-2.5.so libc.so.6
cp /scratchbox/compilers/oe-x86-new2/i486-linux/lib/ld-2.5.so    ./ -rf
ln -svf ld-2.5.so ld.so
ln -svf ld-2.5.so ld-linux.so.2
cp /scratchbox/compilers/oe-x86-new2/i486-linux/lib/libdl-2.5.so ./ -rf
ln -sfv libdl-2.5.so libdl.so.2
cp /scratchbox/compilers/oe-x86-new2/i486-linux/lib/libpthread-2.5.so  ./ -rf
ln -sfv libpthread-2.5.so libpthread.so.0


-------------------------------------------------------
marvell提供的工具链:
/home1/bridge/toolchain/crosstool/toolchain-2007-03-19/build/arm-iwmmxt-linux-gnueabi/gcc-4.1.1-glibc-2.5/gcc-4.1.1/configure
--target=arm-iwmmxt-linux-gnueabi
--host=i686-host_pc-linux-gnu
--prefix=/usr/local/bridge/arm-iwmmxt-linux-gnueabi
--with-cpu=iwmmxt
--enable-cxx-flags=-msoft-float
--with-float=soft
--with-headers=/usr/local/bridge/arm-iwmmxt-linux-gnueabi/arm-iwmmxt-linux-gnueabi/include
--with-local-prefix=/usr/local/bridge/arm-iwmmxt-linux-gnueabi/arm-iwmmxt-linux-gnueabi
--disable-nls
--enable-threads=posix
--enable-symvers=gnu
--enable-__cxa_atexit
--enable-languages=c,c++
--enable-shared
--enable-c99
--enable-long-long
--------------------------------------------------------

anyka 提供的工具链

anyka 工具链
Configured with: /home/ak3221/crosstool-0.42/build/arm-linux/gcc-3.4.5-glibc-2.3.3/gcc-3.4.5/configure
--target=arm-linux
--host=i686-host_pc-linux-gnu
--prefix=/opt/crosstool/gcc-3.4.5-glibc-2.3.3/arm-linux
--with-float=soft
--with-headers=/opt/crosstool/gcc-3.4.5-glibc-2.3.3/arm-linux/arm-linux/include
--with-local-prefix=/opt/crosstool/gcc-3.4.5-glibc-2.3.3/arm-linux/arm-linux
--disable-nls
--enable-threads=posix
--enable-symvers=gnu
--enable-__cxa_atexit
--enable-languages=c,c++
--enable-shared
--enable-c99
--enable-long-long



用cross-tools-4.3编译的工具链arm9tdmi
Configured with: /opt/workspace/crosstool-0.43/build/arm-9tdmi-linux-gnu/gcc-3.4.4-glibc-2.3.5/gcc-3.4.4/configure
--target=arm-9tdmi-linux-gnu
--host=i686-host_pc-linux-gnu
--prefix=/opt/workspace/toolchains/gcc-3.4.4-glibc-2.3.5/arm-9tdmi-linux-gnu
--with-cpu=arm9tdmi
--enable-cxx-flags=-mcpu=arm9tdmi
--with-headers=/opt/workspace/toolchains/gcc-3.4.4-glibc-2.3.5/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/include
--with-local-prefix=/opt/workspace/toolchains/gcc-3.4.4-glibc-2.3.5/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu
--disable-nls
--enable-threads=posix
--enable-symvers=gnu
--enable-__cxa_atexit
--enable-languages=c,c+
--enable-shared
--enable-c99
--enable-long-long

Configured with: /opt/workspace/crosstool-0.43/build/arm-unknown-linux-gnu/gcc-3.4.4-glibc-2.3.5/gcc-3.4.4/configure
 --target=arm-unknown-linux-gnu
--host=i686-host_pc-linux-gnu
--prefix=/opt/workspace/toolchains/gcc-3.4.4-glibc-2.3.5/arm-unknown-linux-gnu
--with-headers=/opt/workspace/toolchains/gcc-3.4.4-glibc-2.3.5/arm-unknown-linux-gnu/arm-unknown-linux-gnu/include
--with-local-prefix=/opt/workspace/toolchains/gcc-3.4.4-glibc-2.3.5/arm-unknown-linux-gnu/arm-unknown-linux-gnu
--disable-nls
--enable-threads=posix
--enable-symvers=gnu
--enable-__cxa_atexit
--enable-languages=c,c++
--enable-shared
--enable-c99
--enable-long-long

oe armv4工具链
Configured with: /home/oe/build_multimachine/work/armv4t-angstrom-linux-gnueabi/gcc-cross-4.1.2-r6/gcc-4.1.2/configure
--build=i686-linux
--host=i686-linux
--target=arm-angstrom-linux-gnueabi
--prefix=/home/oe/build_multimachine/cross
少--disable-nls
--enable-threads=posix
--enable-symvers=gnu
--enable-__cxa_atexit
--enable-languages=c,c++
--enable-shared
--enable-c99
--enable-long-long
--with-float=soft

--with-gnu-ld
--enable-target-optspace
--enable-multilib
--enable-libstdcxx-pch
--disable-multilib
--disable-libssp
--disable-libunwind-exceptions

--------------
--exec_prefix=/home/oe/build_multimachine/cross
--bindir=/home/oe/build_multimachine/cross/bin
--sbindir=/home/oe/build_multimachine/cross/bin
--libexecdir=/home/oe/build_multimachine/cross/libexec
--datadir=/home/oe/build_multimachine/cross/share
--sysconfdir=/home/oe/build_multimachine/cross/etc
--sharedstatedir=/home/oe/build_multimachine/cross/com
--localstatedir=/home/oe/build_multimachine/cross/var
--libdir=/home/oe/build_multimachine/cross/lib
--includedir=/home/oe/build_multimachine/cross/include
--oldincludedir=/home/oe/build_multimachine/cross/include
--infodir=/home/oe/build_multimachine/cross/share/info
--mandir=/home/oe/build_multimachine/cross/share/man
--program-prefix=arm-angstrom-linux-gnueabi-
--with-local-prefix=/home/oe/build_multimachine/cross/arm-angstrom-linux-gnueabi
--with-gxx-include-dir=/home/oe/build_multimachine/cross/arm-angstrom-linux-gnueabi/include/c++
--with-mpfr=/home/oe/build_multimachine/staging/i686-linux

——————————————————————————-
oe中的a780的工具链
Configured with: /home/oe/build_a780/work/armv5te-angstrom-linux-gnueabi/gcc-cross-4.1.2-r4/gcc-4.1.2/configure
--build=i686-linux -
-host=i686-linux
--target=arm-angstrom-linux-gnueabi
--prefix=/home/oe/build_a780/cross
--with-gnu-ld
--enable-shared
--enable-target-optspace
--enable-languages=c,c++
--enable-threads=posix
--enable-multilib
--enable-c99
--enable-long-long
--enable-symvers=gnu
--enable-libstdcxx-pch
--disable-multilib
--enable-__cxa_atexit
--with-float=soft
--disable-libssp
--disable-libunwind-exceptions

Thread model: posix
-------------
--exec_prefix=/home/oe/build_a780/cross --bindir=/home/oe/build_a780/cross/bin
--sbindir=/home/oe/build_a780/cross/bin
--libexecdir=/home/oe/build_a780/cross/libexec
--datadir=/home/oe/build_a780/cross/share
--sysconfdir=/home/oe/build_a780/cross/etc
--sharedstatedir=/home/oe/build_a780/cross/com
--localstatedir=/home/oe/build_a780/cross/var
--libdir=/home/oe/build_a780/cross/lib
--includedir=/home/oe/build_a780/cross/include
--oldincludedir=/home/oe/build_a780/cross/include
--infodir=/home/oe/build_a780/cross/share/info
--mandir=/home/oe/build_a780/cross/share/man
--program-prefix=arm-angstrom-linux-gnueabi-
--with-local-prefix=/home/oe/build_a780/cross/arm-angstrom-linux-gnueabi
--with-gxx-include-dir=/home/oe/build_a780/cross/arm-angstrom-linux-gnueabi/include/c++
--with-mpfr=/home/oe/build_a780/staging/i686-linux
------------------------

oe 的 bbk-marvell工具链
OE Build Configuration:
BB_VERSION     = "1.8.9"
OE_REVISION    = "52333e2ff8a0a55bff7597d29b54ad3d0e836033"
TARGET_ARCH    = "arm"
TARGET_OS      = "linux-gnueabi"
MACHINE        = "bbk-marvell"
DISTRO         = "angstrom"
DISTRO_VERSION = "2007.9-test-20080125"
TARGET_FPU     = "soft"

Configured with: /home/oe/build_bbk-marvell/work/armv5te-angstrom-linux-gnueabi/gcc-cross-4.1.1-r17/gcc-4.1.1/configure
--build=i686-linux
--host=i686-linux
--target=arm-angstrom-linux-gnueabi
--prefix=/home/oe/build_bbk-marvell/cross
--with-gnu-ld
--enable-shared
--enable-target-optspace
--enable-languages=c,c++
--enable-threads=posix
--enable-multilib
--enable-c99
--enable-long-long
--enable-symvers=gnu
--enable-libstdcxx-pch
--program-prefix=arm-angstrom-linux-gnueabi-
--with-float=soft
--disable-libssp
--disable-libunwind-exceptions
--with-mpfr=/home/oe/build_bbk-marvell/staging/i686-linux
--enable-__cxa_atexit
----------------------------------------

以下取值不一样:
--target=arm-iwmmxt-linux-gnueabi
--with-cpu=iwmmxt
--enable-cxx-flags=-msoft-float
--with-float=soft


Arm9的交叉编译工具



如果glibc使用大于2.5的版本请参照下面的方法




阅读(2033) | 评论(0) | 转发(2) |
0

上一篇:SCM/SVN相关

下一篇:sed 的使用方法

给主人留下些什么吧!~~