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

 

boot.h112行如下:

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

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

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

修改后,重新编译通过。