Chinaunix首页 | 论坛 | 博客
  • 博客访问: 563224
  • 博文数量: 199
  • 博客积分: 5087
  • 博客等级: 大校
  • 技术积分: 2165
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-26 21:53
文章存档

2010年(199)

我的朋友

分类: LINUX

2010-05-18 18:49:46

Illegal instruction的解决?
2009-02-20 09:25

最近捣鼓maemo,发现其下编绎的文件,file一下,提示如下:

busybox: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.8, statically linked, stripped

与普通的编绎下面的对比下:

busybox: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.4.3, statically linked, for GNU/Linux 2.4.3, stripped

试验了下,SYSV格式的busybox(静态的编译的,在文件系统起来之后无法执行),提示:

# ./busybox
Illegal instruction

该问题还得想办法解决,从网上搜到的资料来看,主要有两种可能性:

 1、符点问题
 2、现SYSV相关的问题
 3、内核的问题

附:搜到一些关于 SYSV的解释

sysV是UNIX的两大分支之一,现在的UNIX和类UNIX系统根据其发展分支可以分为sysV分支和BSD分支,这两个分支是最初的UNIX分化出来的最初的AT&T实验室的UNIX系统到了第5版,也是就system V (sysV) 后就分化成了BSD分支和sysV分支, 两者的最大区别就是启动过程的运行等级机制有很大区别. linux是sysV风格的UNIX系统,freeBSD是BSD风格的UNIX系统, 但是现在这个界限也在慢慢模糊掉, 两种分支的系统取长补短,相互渗透.
还有一种可能性:
  maemo下自带的编译器支持新的嵌入式应用程序二进制接口标准EABI,而kernel,首先并未打开对eabi的支持,其次,kernel编绎使用的是非EABI的编译器。
  (实验失败,无法证明是内核问题还是编译器问题,总之和EABI脱不了关系)
又找到一种可能性:
  来源:
  可能是有busybox引起的
昨天在牛人的帮助下,终于解决了Illegal instruction的问题(PS:重新编译下了交叉工具链)
阅读(1868) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~