potential gcc bug causes kvm-userspace build break
FYI
I just discovered a potential gcc bug which causes kvm-userspace builds to break. I looks like it happens only with the latest fedora rawhide gcc 4.4
https://bugzilla.redhat.com/show_bug.cgi?id=489753
The following patch circumvents this problem by just renaming R to REG. People facing the same problem might find this patch useful.
user/test/x86/apic.c +18 -18
@@ -35,9 +35,9 @@ typedef struct { } isr_regs_t;#ifdef __x86_64__ -# define R "r" +# define REG "r"#else -# define R "e" +# define REG "e"#endif extern char isr_entry_point[];
@@ -54,14 +54,14 @@ asm ("push %r9 \n\t" "push %r8 \n\t"#endif -"push %" R "di \n\t" -"push %" R "si \n\t" -"push %" R "bp \n\t" -"push %" R "sp \n\t" -"push %" R "bx \n\t" -"push %" R "dx \n\t" -"push %" R "cx \n\t" -"push %" R "ax \n\t" +"push %" REG "di \n\t" +"push %" REG "si \n\t" +"push %" REG "bp \n\t" +"push %" REG "sp \n\t" +"push %" REG "bx \n\t" +"push %" REG "dx \n\t" +"push %" REG "cx \n\t" +"push %" REG "ax \n\t" #ifdef __x86_64__"mov %rsp, %rdi \n\t" "callq *8*16(%rsp) \n\t"
@@ -70,14 +70,14 @@ asm ("calll *4+4*8(%esp) \n\t" "add $4, %esp \n\t"#endif -"pop %" R "ax \n\t" -"pop %" R "cx \n\t" -"pop %" R "dx \n\t" -"pop %" R "bx \n\t" -"pop %" R "bp \n\t" -"pop %" R "bp \n\t" -"pop %" R "si \n\t" -"pop %" R "di \n\t" +"pop %" REG "ax \n\t" +"pop %" REG "cx \n\t" +"pop %" REG "dx \n\t" +"pop %" REG "bx \n\t" +"pop %" REG "bp \n\t" +"pop %" REG "bp \n\t" +"pop %" REG "si \n\t" +"pop %" REG "di \n\t" #ifdef __x86_64__"pop %r8 \n\t" "pop %r9 \n\t"
user/test/x86/vmexit.c +3 -3
@@ -19,9 +19,9 @@ static inline unsigned long long rdtsc()#define N (1 << 22)#ifdef __x86_64__ -# define R "r" +# define REG "r"#else -# define R "e" +# define REG "e"#endif int main ()
@@ -31,7 +31,7 @@ int main() t1 =rdtsc ();for (i =0 ; i <N ; ++i) - asmvolatile ("push %%" R "bx; cpuid; pop %%" R "bx" + asmvolatile ("push %%" REG "bx; cpuid; pop %%" REG "bx" : : :"eax" ,"ecx" ,"edx" ); t2 =rdtsc ();printf ("vmexit latency: %d\n" , (int )((t2 - t1) /N ));
Quoted 10 lines · Jochen Roth
FYI
I just discovered a potential gcc bug which causes kvm-userspace builds to break.
I looks like it happens only with the latest fedora rawhide gcc 4.4
https://bugzilla.redhat.com/show_bug.cgi?id=489753The following patch circumvents this problem by just renaming R to REG. People facing the same problem might find this patch useful.
Adding a space between the R is a much better fix, since nothing guarantees gcc won't use "REG" in the future too.
Eduardo sent a fix for this a while ago, but it was not applied.
Signature · 5 lines
Glauber Costa. "Free as in Freedom" http://glommer.net "The less confident you are, the more serious you have to act."
Quoted 8 lines · Glauber Costa
Quoted 7 lines · Jochen Roth
FYI
I just discovered a potential gcc bug which causes kvm-userspace builds to break.
I looks like it happens only with the latest fedora rawhide gcc 4.4
https://bugzilla.redhat.com/show_bug.cgi?id=489753
Quoted 8 lines
Quoted 3 lines
The following patch circumvents this problem by just renaming R to REG. People facing the same problem might find this patch useful.
Adding a space between the R is a much better fix, since nothing guarantees gcc won't use "REG" in the future too.
Eduardo sent a fix for this a while ago, but it was not applied.
Jakub just closed the bug. It works as designed:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm
Shall I send another patch with spaces or do you plan to apply Eduardo's patch?
Signature · 1 line
Jochen
Quoted 20 lines · Jochen Roth
Quoted 19 lines · Glauber Costa
Quoted 12 lines · Jochen Roth
FYI
I just discovered a potential gcc bug which causes kvm-userspace builds to
break.
I looks like it happens only with the latest fedora rawhide gcc 4.4
https://bugzilla.redhat.com/show_bug.cgi?id=489753The following patch circumvents this problem by just renaming R to REG. People facing the same problem might find this patch useful.
Adding a space between the R is a much better fix, since nothing guarantees
gcc won't use "REG" in the future too.
Quoted 8 lines
Quoted 2 lines
Eduardo sent a fix for this a while ago, but it was not applied.
Jakub just closed the bug. It works as designed:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htmShall I send another patch with spaces or do you plan to apply Eduardo's patch?
anthony?
Signature · 5 lines
Glauber Costa. "Free as in Freedom" http://glommer.net "The less confident you are, the more serious you have to act."
Quoted 26 lines · Glauber Costa
Quoted 24 lines · Jochen Roth
Quoted 22 lines · Glauber Costa
Quoted 12 lines · Jochen Roth
FYI
I just discovered a potential gcc bug which causes kvm-userspace builds to
break.
I looks like it happens only with the latest fedora rawhide gcc 4.4
https://bugzilla.redhat.com/show_bug.cgi?id=489753The following patch circumvents this problem by just renaming R to REG. People facing the same problem might find this patch useful.
Adding a space between the R is a much better fix, since nothing guarantees
gcc won't use "REG" in the future too.Eduardo sent a fix for this a while ago, but it was not applied.
Quoted 9 lines
Quoted 6 lines
Jakub just closed the bug. It works as designed:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htmShall I send another patch with spaces or do you plan to apply Eduardo's patch?
anthony?
I haven't seen a patch against QEMU... Was it sent to qemu-devel?
Regards,
Anthony Liguori