
#7602: Threaded RTS performing badly on recent OS X (10.8?) ---------------------------------+------------------------------------------ Reporter: simonmar | Owner: Type: bug | Status: new Priority: normal | Milestone: _|_ Component: Runtime System | Version: 7.6.1 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ---------------------------------+------------------------------------------ Comment(by thoughtpolice): Just as a note, I don't think GCC will help anymore; using GCC 4.7.2 on OSX 10.8, compiling my same 'foo' example earlier with ```gcc -O3```, I get: {{{ (lldb) disassemble -m -n main a.out`main a.out[0x100000f00]: cmpl $1, %edi a.out[0x100000f03]: pushq %rbx a.out[0x100000f04]: jle 0x100000f3f ; main + 63 a.out[0x100000f06]: movq 8(%rsi), %rdi a.out[0x100000f0a]: callq 0x100000f54 ; symbol stub for: atoi a.out[0x100000f0f]: leaq 330(%rip), %rdi ; __emutls_v.foo a.out[0x100000f16]: movl %eax, %ebx a.out[0x100000f18]: callq 0x100000f66 ; symbol stub for: __emutls_get_address a.out[0x100000f1d]: movl %ebx, (%rax) a.out[0x100000f1f]: leaq 314(%rip), %rdi ; __emutls_v.foo a.out[0x100000f26]: callq 0x100000f66 ; symbol stub for: __emutls_get_address a.out[0x100000f2b]: leaq 114(%rip), %rdi ; "foo = %d\n" a.out[0x100000f32]: movl (%rax), %esi a.out[0x100000f34]: xorl %eax, %eax a.out[0x100000f36]: callq 0x100000f60 ; symbol stub for: printf a.out[0x100000f3b]: xorl %eax, %eax a.out[0x100000f3d]: popq %rbx a.out[0x100000f3e]: ret a.out[0x100000f3f]: leaq 282(%rip), %rdi ; __emutls_v.foo a.out[0x100000f46]: callq 0x100000f66 ; symbol stub for: __emutls_get_address a.out[0x100000f4b]: movl $10, (%rax) a.out[0x100000f51]: jmp 0x100000f1f ; main + 31 }}} So I think for now we're going to have to just bite the bullet on this one, and make sure the build is solid with Clang on modern OS X anyway. Maybe we can do something evil here later to recover the loss :/ David Peixotto's original patches made the RTS build with clang at first. I'll run a test against HEAD using Clang and see what I find. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/7602#comment:9 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler