linux内核编译时bad register name `%dil'错误

在ubuntu 10.04下编译2.6.23内核时,出现了如下错误:

 

boot.h112行如下:

gcc嵌入汇编限定符的意义:

r表示可以选任何寄存器,结果在编译时选了dil寄存器,这个好像是x86_64架构里的一个寄存器。这好像是一个编译器的bug。

将r改为q,限定为只能选eax,ebx,ecx,edx,缩小了范围,应该不会引起语义上的错误。

修改后,重新编译通过。

转载自:http://nxlhero.blog.51cto.com/962631/702421

posted @ 2013-06-19 21:20  老不死  阅读(348)  评论(0编辑  收藏  举报