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

GHC ghc-devs at haskell.org
Tue Aug 29 22:09:28 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:                    |  Phab:D3883 Phab:D3882
-------------------------------------+-------------------------------------

Comment (by Tamar Christina <tamar@…>):

 In [changeset:"5f6a82040694f7c8c2b394c1b418c0167b963e0b/ghc"
 5f6a8204/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="5f6a82040694f7c8c2b394c1b418c0167b963e0b"
 Add gen-dll as replacement for dll-split

 Summary:
 This tool can be used to generate dll's for any list of object files
 given to it. It will then repartition them automatically to fit within
 a dll and generates as many dll's as needed to do this. Cyclic
 dependencies
 between these generated dlls are handle automatically so there is no need
 to tell it how to partition.

 It is also a lot more general than `dll-split` as it is able to split any
 package not just `libGHC`. It also uses a trick using GNU style import
 libraries
 to hide the splitting from the rest of the pipeline. Which means come
 linking time
 you don't need to know which dll contains what symbol or how many split
 dlls were
 created.

 The import libraries are by default created with libtool. However since
 libtool is BFD
 based it is very slow. So if present and detected by configure the
 `genlib` tool
 from the msys2 project is used. This makes a difference of about ~45
 minutes when compiling.

 To install `genlib` run `pacman -Sy mingw-w64-$(uname -m)-tools-git`.

 More detailed explaination of the process can be found here
 https://ghc.haskell.org/trac/ghc/wiki/WindowsDynamicLinking

 Test Plan: ./validate

 Reviewers: austin, hvr, bgamari, erikd, simonmar

 Reviewed By: bgamari

 Subscribers: snowleopard, rwbarton, thomie, erikd, #ghc_windows_task_force

 GHC Trac Issues: #5987

 Differential Revision: https://phabricator.haskell.org/D3883
 }}}

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


More information about the ghc-tickets mailing list