1、下载地址:http://ftp.gnu.org/gnu/
下载内容:gcc,binutils,glibc
2、步骤:1)binutils
2)最小化交叉编译gcc
3)linux kernel headers
4)glibc
5)最终版gcc
3、由于binutils最新版的(2.21)需要mpc、gmp和mpfr,但是不需要交叉编译,所以直接安装x86的就行。
binutils的configure参数只需要设置target为arm-linux就可以,其他禁用选项没有必要
4、最小化编译gcc时需要去除对宿主机lib的依赖,禁用shared、threads。另外还须禁用libmudflap、multilib、libssp、libgomp、libiberty(除第一个选项外都是在arm编译条件无法通过的选项),
configure参数设置为:--target=arm-none-linux-gnueabi --disable-shared --disable-threads --without-heades --disable-libmudflap --enable-languages=c
先make all-gcc all-install之后make all-target-libgcc install-target-libgcc。因为libgcc对gcc的依赖需要先安装好gcc再编译libgcc。
5、linux kernel的存放位置一般为/usr/src/kernel目录下,fedora和archlinux(似乎只有x86的)都默认带了。如果没有可以去kernel.org下载,复制到include目录下或者在glibc编译是添加headers路径。
6、glibc的nptl的pthread需要检测unwind,c cleanup handling,gnu89 line可能没有,将相应的configure检测内容强制为成功。
gnu89 line选项如果在configure时没有设置可能会通过,但是make时会出错。CFLAGS += -fno-stack-protector也可以添加gnu89-line选项
因为没有config-name.h文件,自己根据uname -a的结果建立一个。
manmul的makefile文件有点小问题,把提示错误的隐含规则行单独出来处理。
为lowlevellock.h添加<tls.h>
将elf的makefile文件的关于_begin的sed语句的0替换为.*
sysdeps/arm/fpu/setjmp.S文件末尾添加hidden_def(__sigsetjmp)
8、编译最终版gcc
configure参数设置为:--target=arm-none-linux-gnueabi --enable-shared --enable-threads --enable-nls --enable-languages=c,c++
关于nls的支持,禁用与不禁用似乎没有什么差别,一般都会禁用。
注:加粗的一般是必须要做的,其他的可能根据环境不同有所差别。
问题一般会出在glibc的编译过程,其他都还比较顺利。
arm-none-linux-gnueabi与arm-linux区别是否提供eabi支持,针对于mini6410开发板提供的系统是需要eabi支持的否则会报段错误。
分享到:
相关推荐
arm-linux-gcc-4.5.1(友善之臂提供的最新交叉编译器)!
利用arm-linux-gcc 4.5.1 交叉编译器编译Qt5.4.2的过程文档
基于GCC的交叉编译器研究与开发.pdf
解决了GCC对特殊语法不支持的问题。 (2)在后端设计方面,主要是根据用户的需求以及机器描述文件的规则设 计相关接口,实现了特定汇编信息的输出,解决了GCC标准输出与现有汇编器 不兼容的问题。
ARM-Linux GCC 4.4.3交叉编译器符合EABI标准的交叉编译器, 彻底解决编译Qtopia2/Qt4时出现的"Segmentation Fault"问题
嵌入式基础:ARM下GCC交叉编译器的制作pdf,
arm linux gcc 交叉编译工具
arm-linux-gcc交叉编译器7.3.1,适用 ARM -A9 等ARMV7-32的硬件环境,在Linaro官网下载最新版。此编译器是GNU版,按照官网说法是跑应用程序,不是跑裸机,跑裸机的编译器我也上传到我的号了,可以下载
CompilerCollection)是非常优秀的交叉编译器而且具有很好的可移植性,所以移植GCC是一个非常正确的方法。以交 叉编译系统ZLTCG的开发为背景,详细分析了交叉编译系统GCC的体系结构,对其高度可移植性所依赖的中间...
本教程将详解如何在linux(构建系统)中构建一个交叉工具链, 可以运行在windows(主机系统)中, 但却为linux(目标系统)生成可执行文件elf.
arm-linux-gcc交叉编译器,版本3.4.1,用于Linux下的ARM开发。 安装方法: 1. tar zxvf arm-linux-gcc-3.4.1.tgz -C/ 2. 编辑 ~/.bashrc ,加入 export PATH=$PATH:/usr/local/arm/3.4.1/bin 3. 验证安装 [root@...
arm交叉编译器,生成64位程序。
arm-linux-gcc交叉编译器 arm-linux-gcc交叉编译器 arm-linux-gcc交叉编译器 arm-linux-gcc交叉编译器
arm-linux-gcc 4.4.3版本安装步骤 将压缩包arm-linux-gcc.tar.gz解压到arm-linux-gcc文件夹 tar zcvf arm-linux-gcc.tar.gz arm-linux-gcc 将创建目录 mkdir /home/linux/arm-linux-gcc 将解压后的文件拷贝到安装...
arm-linux-gcc交叉编译器,版本3.4.1,用于Linux下的ARM开发。 安装方法: 1. tar zxvf arm-linux-gcc-3.4.1.tgz -C/ 2. 编辑 ~/.bashrc ,加入 export PATH=$PATH:/usr/local/arm/3.4.1/bin 3. 验证安装 [root@...
由于这个文件本身就是linux下的一个90M大的压缩包,而小弟我只能上传15M大的文件。所以我改了名字给它分压成6个part的文件包了。要找到其他part请点击tag名字arm-linux-gcc4.3.2.tar.gz
交叉工具链arm-linux-gcc 4.5.1,以及制造根文件系统时需要的动态链接库也在该工具的目录下。
arm-linux-gcc-3.3.2 交叉编译器的建立 ,描述了如何建立交叉编译环境的具体步骤,再次针对arm平台,其它类似
mips-gcc交叉编译工具压缩包gcc-4.3-ls232.tar.gz 适用于CPU设计实战4.3节的内容
linux的GCC交叉编译器的安装步骤详解