http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46909
Summary: [4.6 Regression] elf32-i386.c and elf64-x86-64.c in binutils are miscompiled Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: hjl.to...@gmail.com GCC 4.6 revision 167711 miscompiles elf32-i386.c and elf64-x86-64.c in binutils. I got FAIL: TLS descriptor -fpic -shared transitions FAIL: TLS with global dynamic and descriptors for both i386 and x86-64 TLS tests with error like: /export/build/gnu/binutils/build-x86_64-linux/ld/../binutils/objdump -drj.text tmpdir/libtlsdesc.so regexp_diff match failure regexp "^ [0-9a-f]+: 81 c3 9a 13 00 00[ ]+add \$0x[0-9a-f]+,%ebx$" line " 2df: 81 c3 ae 13 00 00 add $0x13ae,%ebx" regexp_diff match failure regexp "^ [0-9a-f]+: 8b 83 f8 ff ff ff[ ]+mov -0x8\(%ebx\),%eax$" line " 2f5: 8b 83 f4 ff ff ff mov -0xc(%ebx),%eax" regexp_diff match failure regexp "^ [0-9a-f]+: 8b 83 c4 ff ff ff[ ]+mov -0x3c\(%ebx\),%eax$" line " 301: 8b 83 bc ff ff ff mov -0x44(%ebx),%eax" regexp_diff match failure regexp "^ [0-9a-f]+: 8b 83 d4 ff ff ff[ ]+mov -0x2c\(%ebx\),%eax$" line " 30d: 8b 83 cc ff ff ff mov -0x34(%ebx),%eax" regexp_diff match failure regexp "^ [0-9a-f]+: 8b 83 b0 ff ff ff[ ]+mov -0x50\(%ebx\),%eax$" line " 325: 8b 83 a0 ff ff ff mov -0x60(%ebx),%eax" regexp_diff match failure regexp "^ [0-9a-f]+: 8b 83 b4 ff ff ff[ ]+mov -0x4c\(%ebx\),%eax$" line " 331: 8b 83 a4 ff ff ff mov -0x5c(%ebx),%eax" regexp_diff match failure regexp "^ [0-9a-f]+: 8b 83 bc ff ff ff[ ]+mov -0x44\(%ebx\),%eax$" line " 33d: 8b 83 ac ff ff ff mov -0x54(%ebx),%eax" regexp_diff match failure regexp "^ [0-9a-f]+: 8b 83 c8 ff ff ff[ ]+mov -0x38\(%ebx\),%eax$" line " 361: 8b 83 c0 ff ff ff mov -0x40(%ebx),%eax" regexp_diff match failure regexp "^ [0-9a-f]+: 8b 83 e8 ff ff ff[ ]+mov -0x18\(%ebx\),%eax$" line " 36d: 8b 83 e4 ff ff ff mov -0x1c(%ebx),%eax" regexp_diff match failure regexp "^ [0-9a-f]+: 8b 83 cc ff ff ff[ ]+mov -0x34\(%ebx\),%eax$" line " 385: 8b 83 c4 ff ff ff mov -0x3c(%ebx),%eax" regexp_diff match failure regexp "^ [0-9a-f]+: 8b 83 ec ff ff ff[ ]+mov -0x14\(%ebx\),%eax$" line " 391: 8b 83 e8 ff ff ff mov -0x18(%ebx),%eax" regexp_diff match failure regexp "^ [0-9a-f]+: 8b 83 e0 ff ff ff[ ]+mov -0x20\(%ebx\),%eax$" line " 39d: 8b 83 d8 ff ff ff mov -0x28(%ebx),%eax" regexp_diff match failure regexp "^ [0-9a-f]+: 2b 8b f8 ff ff ff[ ]+sub -0x8\(%ebx\),%ecx$" line " 3f0: 2b 8b f4 ff ff ff sub -0xc(%ebx),%ecx" regexp_diff match failure regexp "^ [0-9a-f]+: 2b 83 d0 ff ff ff[ ]+sub -0x30\(%ebx\),%eax$" line " 402: 2b 83 c8 ff ff ff sub -0x38(%ebx),%eax" regexp_diff match failure regexp "^ [0-9a-f]+: 03 8b c4 ff ff ff[ ]+add -0x3c\(%ebx\),%ecx$" line " 415: 03 8b bc ff ff ff add -0x44(%ebx),%ecx" regexp_diff match failure regexp "^ [0-9a-f]+: 03 83 d4 ff ff ff[ ]+add -0x2c\(%ebx\),%eax$" line " 427: 03 83 cc ff ff ff add -0x34(%ebx),%eax" regexp_diff match failure regexp "^ [0-9a-f]+: 2b 8b b0 ff ff ff[ ]+sub -0x50\(%ebx\),%ecx$" line " 43a: 2b 8b a0 ff ff ff sub -0x60(%ebx),%ecx" regexp_diff match failure regexp "^ [0-9a-f]+: 2b 83 b8 ff ff ff[ ]+sub -0x48\(%ebx\),%eax$" line " 44c: 2b 83 a8 ff ff ff sub -0x58(%ebx),%eax" regexp_diff match failure regexp "^ [0-9a-f]+: 03 8b b4 ff ff ff[ ]+add -0x4c\(%ebx\),%ecx$" line " 45f: 03 8b a4 ff ff ff add -0x5c(%ebx),%ecx" regexp_diff match failure regexp "^ [0-9a-f]+: 03 83 bc ff ff ff[ ]+add -0x44\(%ebx\),%eax$" line " 471: 03 83 ac ff ff ff add -0x54(%ebx),%eax" regexp_diff match failure regexp "^ [0-9a-f]+: 2b 83 e4 ff ff ff[ ]+sub -0x1c\(%ebx\),%eax$" line " 496: 2b 83 e0 ff ff ff sub -0x20(%ebx),%eax" regexp_diff match failure regexp "^ [0-9a-f]+: 03 8b c8 ff ff ff[ ]+add -0x38\(%ebx\),%ecx$" line " 4a9: 03 8b c0 ff ff ff add -0x40(%ebx),%ecx" regexp_diff match failure regexp "^ [0-9a-f]+: 03 83 e8 ff ff ff[ ]+add -0x18\(%ebx\),%eax$" line " 4bb: 03 83 e4 ff ff ff add -0x1c(%ebx),%eax" regexp_diff match failure regexp "^ [0-9a-f]+: 2b 8b cc ff ff ff[ ]+sub -0x34\(%ebx\),%ecx$" line " 4ce: 2b 8b c4 ff ff ff sub -0x3c(%ebx),%ecx" regexp_diff match failure regexp "^ [0-9a-f]+: 2b 83 dc ff ff ff[ ]+sub -0x24\(%ebx\),%eax$" line " 4e0: 2b 83 d4 ff ff ff sub -0x2c(%ebx),%eax" regexp_diff match failure regexp "^ [0-9a-f]+: 03 8b ec ff ff ff[ ]+add -0x14\(%ebx\),%ecx$" line " 4f3: 03 8b e8 ff ff ff add -0x18(%ebx),%ecx" regexp_diff match failure regexp "^ [0-9a-f]+: 03 83 e0 ff ff ff[ ]+add -0x20\(%ebx\),%eax$" line " 505: 03 83 d8 ff ff ff add -0x28(%ebx),%eax" regexp_diff match failure regexp "^ [0-9a-f]+: 8b 8b d8 ff ff ff[ ]+mov -0x28\(%ebx\),%ecx$" line " 50f: 8b 8b d0 ff ff ff mov -0x30(%ebx),%ecx" regexp_diff match failure regexp "^ [0-9a-f]+: 8b 83 c0 ff ff ff[ ]+mov -0x40\(%ebx\),%eax$" line " 51e: 8b 83 b0 ff ff ff mov -0x50(%ebx),%eax" regexp_diff match failure regexp "^ [0-9a-f]+: 8b 93 f0 ff ff ff[ ]+mov -0x10\(%ebx\),%edx$" line " 52d: 8b 93 ec ff ff ff mov -0x14(%ebx),%edx" regexp_diff match failure regexp "^ [0-9a-f]+: 8b 8b f4 ff ff ff[ ]+mov -0xc\(%ebx\),%ecx$" line " 53c: 8b 8b f0 ff ff ff mov -0x10(%ebx),%ecx" FAIL: TLS descriptor -fpic -shared transitions Some bits are wrong.