ARM toochain 与内核,glibc关系

最近才进入linux世界,这几天一直在为我的ARM开发板做一个交叉编译工具链,参考网上的一些资源,几经波折终于做好了两套交叉编译工具链,分别为2.95.3和3.4.3(这里的版本是以所用到的gcc版本来定的)

 

先声明两个版本交叉编译工具所使用到的资源情况:

2.95.3:binutils-2.10.1  ;  gcc-2.95.3 ; glibc-2.2.3 ;glibc-linuxthreads-2.2.3 ; linux-2.4.21+rmk2。

3.4.3 : binutils-2.15 ; gcc-code-3.4.3 ;gcc-g++3.4.3 ; glibc-2.3.5 ; glibc-linuxthreads-2.3.5 ;linux-2.6.9

 

ARM开发板情况:

CPUs3c2440,预装linux OS 内核版本为:2.6.13

 

问题:

其中2.95.3版本的交叉编译工具链已经成功编译了vivi_20030630源代码,下载到s3c2440开发板后能正常启动ARM开发板;

本想使用3.4.3的toolchain编译2.6.13内核,不想竟出现很多问题,遂编写了两个测试程序hello.c和hello.cpp,使用这两个交叉编译工具进行编译,然后使用

file hello 和file hellocpp 显示的结果都是:

 

ELF 32-bit LSB executable ARM,version 1 (ARM) for GNU/Linux2.0.0 dynamically linked(uses shared libs),not stripped

 

接下来出现的错误让我搓手不及,把编译好的这两个文件载入开发板,使其执行,都发生错误其中使用3.4.1编译的这两个文件提示的出错信息如下:

执行hello.c可执行文件helloc提示信息:

/helloc: error while loading shared libraries: ./hello: symbol __register_frame_

info, version GLIBC_2.0 not defined in file libc.so.6 with link time reference

 

执行hello.cpp的可执行文件hellocpp提示信息:

/hellocpp: /lib/libc.so.6: version `GLIBC_2.3' not found (required by ./hellocpp)

 

再使用从网上下载的3.4.1交叉编译工具链对上述两个文件进行编译,下载到目标板上却都可以正常运行,唯一不同的地方是,使用file 显示文件属性时出现的信息是:

ELF 32-bit LSB executable ARM,version 1 (ARM) for GNU/Linux2.4.3 dynamically linked(uses shared libs),not stripped

 

所以我的问题是:

 

问题一:

做交叉编译工具时,我所使用的资源与大多数网友发贴出来所使用的资源是一致的,然而做出来的交叉编译工具功能并不一致(或者说,版本是不同的)。明显的信息如上所示:ARM,version 1 (ARM) for GNU/Linux2.0.0 (我做的);ARM,version 1 (ARM) for GNU/Linux2.4.3 (网上下载的),我想知道的是,这里的GNU/Linux2.0.0 和GNU/Linux2.4.3 中的2.0.0和2.4.3是依据什么定义出来的?这个版本号与内核有什么关系吗?

 

问题二:

 

通过阅读Kernel的README可以知道内核版本对gcc,make版本的要求,那么内核版本与glibc 版本,binutils版本又有什么关系呢?如果做一个交叉编译工具,有该如何来确定glibc版本和binutils版本呢?

 

 

我知道网上有做好的交叉编译工具链可以下载使用,但抱着学习的态度,我还是决定自己做。

请论坛的大侠们多多指教,不胜感激!

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值