
#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