最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】armv4l/dsputil_arm_s.S:79:error:selected processor does not support ‘pld[r1]’

工作和技术 crifan 1666浏览 0评论

【已解决】armv4l/dsputil_arm_s.S:79:error:selected processor does not support ‘pld[r1]’

在make buildroot的rootfs的时候,编译MPlayer-1.0rc1出了问题:
armv4l/dsputil_arm_s.S:79:error:selected processor does not support ‘pld[r1]’

和网上某位一样:
s3c2410嵌入式平台 交叉编译X264 FFMPEG 求助!
“好像是说不支持的指令,感觉非常奇怪,指定了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编译器版本也可以解决此问题:
http://www.itdp.de/mplayer-users/2006-03/msg00308.html
“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.”

转载请注明:在路上 » 【已解决】armv4l/dsputil_arm_s.S:79:error:selected processor does not support ‘pld[r1]’

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
79 queries in 0.158 seconds, using 22.11MB memory