[GHC] #13606: GHCi segfaults on Windows with D3D code

GHC ghc-devs at haskell.org
Fri Jun 2 16:27:59 UTC 2017


#13606: GHCi segfaults on Windows with D3D code
----------------------------------+----------------------------------------
        Reporter:  RyanGlScott    |                Owner:  Phyx-
            Type:  bug            |               Status:  patch
        Priority:  normal         |            Milestone:  8.4.1
       Component:  GHCi           |              Version:  8.2.1-rc2
      Resolution:                 |             Keywords:
Operating System:  Windows        |         Architecture:  Unknown/Multiple
 Type of failure:  GHCi crash     |            Test Case:
      Blocked By:                 |             Blocking:
 Related Tickets:  #12499 #12498  |  Differential Rev(s):  Phab:D3513
       Wiki Page:                 |
----------------------------------+----------------------------------------

Comment (by Ben Gamari <ben@…>):

 In [changeset:"93489cd3b4c1b0d17506a12a9b964c0082ddb7a8/ghc"
 93489cd3/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="93489cd3b4c1b0d17506a12a9b964c0082ddb7a8"
 Better import library support for Windows

 The import library support added for 7.10.3 was only a partial one.
 This support was predicated on using file extensions to determine
 whether or not a library was an import library. It also couldn't handle
 libraries with multiple dll pointers.

 This is a rewrite of that patch and fully integrating it into the normal
 archive parsing and loading routines. This solves a host of issues,
 among others allowing us to finally use `-lgcc_s`.

 This also fixes a problem with our previous implementation, where we
 just loaded the DLL and moved on. Doing this had the potential of using
 the wrong symbol at resolve time. Say a DLL already loaded (A.dll) has
 symbol a exported (dependency of another dll perhaps).

 We find an import library `B.lib` explicitly defining an export of `a`.
 we load `B.dll` but this gets put after `A.dll`, at resolve time we
 would use the value from `A` instead of `B` which is what we wanted.

 Test Plan: ./valide and make test TEST=13606

 Reviewers: austin, bgamari, erikd, simonmar

 Reviewed By: bgamari

 Subscribers: rwbarton, RyanGlScott, thomie, #ghc_windows_task_force

 GHC Trac Issues: #13606, #12499, #12498

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

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


More information about the ghc-tickets mailing list