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:重新编译下了交叉工具链)
阅读(7090) | 评论(1) | 转发(0) |