[GHC] #5987: Too many symbols in ghc package DLL

GHC ghc-devs at haskell.org
Wed Mar 8 12:16:34 UTC 2017


#5987: Too many symbols in ghc package DLL
---------------------------------+----------------------------------------
        Reporter:  igloo         |                Owner:  Phyx-
            Type:  bug           |               Status:  patch
        Priority:  normal        |            Milestone:  8.4.1
       Component:  Compiler      |              Version:  7.5
      Resolution:                |             Keywords:
Operating System:  Windows       |         Architecture:  Unknown/Multiple
 Type of failure:  None/Unknown  |            Test Case:
      Blocked By:  10352         |             Blocking:  5355
 Related Tickets:                |  Differential Rev(s):  Phab:D2592
       Wiki Page:                |
---------------------------------+----------------------------------------

Comment (by Phyx-):

 Just a quick update, I've gone through about 4 rewrite of the core parts
 of this patch. The biggest issue is with how GHC accesses const data. This
 forces me to essentially write a unix like dynamic loader in the binaries
 because of how closures and info tables are accessed. Or use bounded
 imports and forgo the ability to use ASLR with GHC applications, which is
 a heavy price.

 Also `dlltool` is very slow, too slow to be usable at the scale required.
 GHC has managed to bloat up to a size where it has to be split into 3 DLLs
 (nearing a 4th). The automatic splitting works fine, but the resulting
 import libraries require `dlltool` to process 3x ~65k symbols. Which it
 takes half an hour to do and generates huge file sizes. This is because
 the way import libraries are implemented in binutils is a hack.
 Microsoft's own `lib.exe` tool does this in seconds and creates a much
 much smaller file.

 This means I also have to write a tool to generate import libraries in
 their short format for use by GHC. I still expect to finish by `8.4.1`.

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


More information about the ghc-tickets mailing list