[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