> On Sun, Jun 12, 2011 at 7:54 AM, Jan Hubicka <hubi...@ucw.cz> wrote: > >> > >> This also pretty much destroyed C++ for ia32: > >> > >> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49378 > >> http://gcc.gnu.org/ml/gcc-regression/2011-06/msg00159.html > > > > Hi, > > It seems somewhat amazing that we hit kernel sensitive miscompilation here. > > The problem most probably is the fact that thunks and functions with thunks > > can become > > local. This is correct since thunks are represented as direct calls now, > > but this > > makes i386 to use local ABI when calling or compiling them. > > > > For x86-64, we use the same ABI for local and global. But RAX seems > used and uninitialized in thunk. 000000000006d270 <_ZN12_GLOBAL__N_121system_error_categoryD0Ev>: 6d270: 48 8d 05 79 d4 27 00 lea 0x27d479(%rip),%rax # 2ea6f0 <_ZTVN12_GLOBAL__N_121system_error_categoryE+0x10> 6d277: 53 push %rbx 6d278: 48 89 fb mov %rdi,%rbx 6d27b: 48 89 07 mov %rax,(%rdi) 6d27e: e8 55 a0 fe ff callq 572d8 <_ZNSt14error_categoryD2Ev@plt> 6d283: 48 89 df mov %rbx,%rdi 6d286: 5b pop %rbx 6d287: e9 2c 9d fe ff jmpq 56fb8 <_ZdlPv@plt> 6d28c: 90 nop 6d28d: 90 nop 6d28e: 90 nop 6d28f: 90 nop
I don't see uinitialized RAX here. It is set by the first LEA I will commit the patch now to unbreak x86 and work on more proper solution after debugging the plugin usses. Thanks for testing! Honza > > -- > H.J.