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

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

linux内核编译时bad register name `%dil'错误_第1张图片 

boot.h112行如下:

linux内核编译时bad register name `%dil'错误_第2张图片

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

linux内核编译时bad register name `%dil'错误_第3张图片

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

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

修改后,重新编译通过。

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

你可能感兴趣的:(linux,内核,编译出错)