[GHC] #5899: RTS crash w/ strange closure type 603975781 on OS X 10.8

GHC cvs-ghc at haskell.org
Thu Mar 29 02:36:12 CEST 2012


#5899: RTS crash w/ strange closure type 603975781 on OS X 10.8
-----------------------------------------------------------+----------------
    Reporter:  dylukes                                     |       Owner:               
        Type:  bug                                         |      Status:  new          
    Priority:  high                                        |   Milestone:  7.4.2        
   Component:  Runtime System                              |     Version:  7.4.1        
    Keywords:  rts, strange closure, internal error, os x  |          Os:  MacOS X      
Architecture:  x86_64 (amd64)                              |     Failure:  Runtime crash
  Difficulty:  Unknown                                     |    Testcase:               
   Blockedby:                                              |    Blocking:               
     Related:                                              |  
-----------------------------------------------------------+----------------

Comment(by Irene):

 Well, we can indeed do it with an order file, but it's unwieldy to have to
 construct one that encompasses every single module being linked, and then
 it breaks again if linked again, as for example happens if we build a
 Haskell library that an innocent and well-meaning author tries to link
 into a C program without GHC's involvement.  Actually, I'm not sure how we
 can make that scenario work even with some sort of way to tell LLVM
 explicitly about TNTC, since the Mach-O format doesn't have any way to
 express that constraint, so it will never survive to a second linking.

 But the main reason to not use an order file is that the reordering
 probably actually does provide a good benefit, since (I assume but
 nobody's actually explained it that I've seen) it does things such as
 providing additional code locality so as to keep things within the
 processor's instruction cache more often.  It can also do whole-program
 dead-code removal.  This sort of feature, which the LLVM people call link-
 time optimization (LTO), is defeated if we tell it it can't actually do
 anything.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5899#comment:26>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler



More information about the Glasgow-haskell-bugs mailing list