全部博文(2005)
分类:
2009-08-11 17:34:01
在make buildroot的rootfs的时候,编译MPlayer-1.0rc1出了问题:
armv4l/dsputil_arm_s.S:79:error:selected processor does not support 'pld[r1]'
和网上某位一样:
“好像是说不支持的指令,感觉非常奇怪,指定了arch=arm 的,怎么会出现不支持的指令呢。难道是我的版本不对”
自己确定已经配置成arm了,但是却有不支持的指令,很是奇怪,
后来去网上找到了如下解释:
Re: 3.5.4.1 status update and BSP request: msg#00003
“
The PLD instruction can just be ignored on arm4 - worst case it can be
commented/patched out or made conditional on arm5+. Its there to
"preload" memory so its safe to just ignore it on arches which don't
support it. I believe glibc uses macros for the function which only
result in the instruction being present in the arm5+ case. If you still
have problems, let me know and I'll try and look into it.
”
意思是,PLD这个指令,只有ARM5以上才支持,而此处,我的配置是arm922T,属于arm4,
不支持这个指令,可以直接忽略它。所以,用下面这个人的方法,
手动添加通过宏定义判断,就可以避开此问题了:
在cygwin下移植ffmpeg到wince
“3. armv4l/dsputil_arm_s.S:79:error:selected processor does not support 'pld[r1]'
这个是外部要定义下吧,
#ifndef HAVE_PLD
.macro pld reg
.endm
#endif
”
也就是,修改dsputil_arm_s.S,在前面添加上:
#ifndef HAVE_PLD
.macro pld reg
.endm
#endif
即可。其实做的更好的,应该是通过判定arm系统结构是5以下,不支持此PLD指令,然后再加上此定义。
【解决办法2】
网上有人换了个arm gcc编译器版本也可以解决此问题:
“It seems this problem is realted to the ARM GCC 4.0. I used another ARM GCC 4.1
and did not receive this error message.”