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,缩小了范围,应该不会引起语义上的错误。
修改后,重新编译通过。
在ubuntu 10.04下编译2.6.23内核时,出现了如下错误:
boot.h112行如下:
gcc嵌入汇编限定符的意义:
r表示可以选任何寄存器,结果在编译时选了dil寄存器,这个好像是x86_64架构里的一个寄存器。这好像是一个编译器的bug。
将r改为q,限定为只能选eax,ebx,ecx,edx,缩小了范围,应该不会引起语义上的错误。
修改后,重新编译通过。