[GHC] #12210: allocateExec: can't handle large objects

GHC ghc-devs at haskell.org
Sun Jun 19 15:52:44 UTC 2016


#12210: allocateExec: can't handle large objects
-------------------------------------+-------------------------------------
           Reporter:  thomie         |             Owner:
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  Runtime        |           Version:  8.0.1
  System (Linker)                    |
           Keywords:                 |  Operating System:  Windows
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 `ghci T11535.hs` fails on Windows with:
 {{{
 GHCi, version 8.0.0.20160421: http://www.haskell.org/ghc/  :? for help
 [1 of 1] Compiling Main             ( T11535.hs, interpreted )
 ghc.exe: internal error: allocateExec: can't handle large objects
     (GHC version 8.0.0.20160421 for x86_64_unknown_mingw32)
     Please report this as a GHC bug:
 http://www.haskell.org/ghc/reportabug

 This application has requested the Runtime to terminate it in an unusual
 way.
 Please contact the application's support team for more information.
 }}}

 See also this comment in `rts/sm/Storage.c`:
 {{{
 /*
 ----------------------------------------------------------------------------
    Executable memory

    Executable memory must be managed separately from non-executable
    memory.  Most OSs these days require you to jump through hoops to
    dynamically allocate executable memory, due to various security
    measures.

    Here we provide a small memory allocator for executable memory.
    Memory is managed with a page granularity; we allocate linearly
    in the page, and when the page is emptied (all objects on the page
    are free) we free the page again, not forgetting to make it
    non-executable.

    TODO: The inability to handle objects bigger than BLOCK_SIZE_W means
 that
          the linker cannot use allocateExec for loading object code files
          on Windows. Once allocateExec can handle larger objects, the
 linker
          should be modified to use allocateExec instead of VirtualAlloc.
 -------------------------------------------------------------------------
 */

 }}}

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


More information about the ghc-tickets mailing list