[GHC] #4: -fext-core -fno-core behaves funny

GHC ghc-devs at haskell.org
Sun Mar 6 09:53:30 UTC 2016


#4: -fext-core -fno-core behaves funny
---------------------+--------------------
  Reporter:  josefs  |      Owner:  nobody
      Type:  bug     |     Status:  closed
  Priority:  normal  |  Milestone:
 Component:  Driver  |    Version:  None
Resolution:  Fixed   |   Keywords:
---------------------+--------------------

Comment (by Sergei Trofimovich <siarheit@…>):

 In [changeset:"ade1a461ab4ba3e6de3c4afe9fe9766b7b4e51b3/ghc"
 ade1a461/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="ade1a461ab4ba3e6de3c4afe9fe9766b7b4e51b3"
 Fix minimum alignment for StgClosure (Trac #11395)

 The bug is observed on m68k-linux target as crash
 in RTS:

     -- a.hs:
     main = print 43

     $ inplace/bin/ghc-stage1 --make -debug a.hs

     $ ./a
     Program terminated with signal SIGSEGV, Segmentation fault.
     #0  0x80463b0a in LOOKS_LIKE_INFO_PTR_NOT_NULL (p=32858)
         at includes/rts/storage/ClosureMacros.h:248
     (gdb) bt
     #0  0x80463b0a in LOOKS_LIKE_INFO_PTR_NOT_NULL (p=32858)
         at includes/rts/storage/ClosureMacros.h:248
     #1  0x80463b46 in LOOKS_LIKE_INFO_PTR (p=32858)
         at includes/rts/storage/ClosureMacros.h:253
     #2  0x80463b6c in LOOKS_LIKE_CLOSURE_PTR (
             p=0x805aac6e <stg_dummy_ret_closure>)
         at includes/rts/storage/ClosureMacros.h:258
     #3  0x80463e4c in initStorage ()
         at rts/sm/Storage.c:121
     #4  0x8043ffb4 in hs_init_ghc (...)
         at rts/RtsStartup.c:181
     #5  0x80455982 in hs_main (...)
         at rts/RtsMain.c:51
     #6  0x80003c1c in main ()

 GHC assumes last 2 pointer bits are tags on 32-bit targets.
 But here 'stg_dummy_ret_closure' address violates the assumption:

     LOOKS_LIKE_CLOSURE_PTR (p=0x805aac6e <stg_dummy_ret_closure>)

 I've added compiler hint for static StgClosure objects to
 align closures at least by their natural alignment (what GHC assumes).
 See Note [StgWord alignment].

 Signed-off-by: Sergei Trofimovich <siarheit at google.com>

 Test Plan: ran basic test on m68k qemu, it got past ASSERTs

 Reviewers: simonmar, austin, bgamari

 Reviewed By: bgamari

 Subscribers: thomie

 Differential Revision: https://phabricator.haskell.org/D1974

 GHC Trac Issues: #11395
 }}}

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


More information about the ghc-tickets mailing list