最近在做一个mips架构的嵌入式linux移植。当程序从linux启动后跳转到busybox的init时,系统无反映,敲回车和字符串口有回显,好像busybox被挂住。
在busybox程序的入口添加printf打印,串口无响应。busybox应该是一开始就挂住了,还没到main函数。
尝试将busybox编译成静态库链接,编译出现错误,提示有些pthread库的函数找不到链接。在Rules.mk中添加链接-lpthread后,链接成功。运行之,居然ok了!
然后再将busybox编译成动态链接,运行,也ok了!
百思不得其解。对比前面和后面生成的busybox程序,发现大小是不同的。回想上面的操作步骤,我将-lpthread去除并编译成动态链接,故障复现了。
我感觉这个问题应该是gcc链接工具ld的一个bug。在动态链接时,没有指定-lpthread时,也应该出现链接出错,而不是链接成功。
阅读(2186) | 评论(0) | 转发(0) |