[GHC] #10955: GHC on windows does not resolve DLL dependencies

GHC ghc-devs at haskell.org
Sat Oct 10 15:38:50 UTC 2015


#10955: GHC on windows does not resolve DLL dependencies
-------------------------------------+-------------------------------------
           Reporter:  Phyx-          |             Owner:  Phyx-
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:  8.0.1
          Component:  Runtime        |           Version:  7.10.2
  System (Linker)                    |
           Keywords:                 |  Operating System:  Windows
       Architecture:                 |   Type of failure:  Runtime crash
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 GHC does not correctly tell the Windows Loader how to handle dependencies
 to dll's that are not on the standard windows load path:

 1. The directory from which the application loaded.
 2. The current directory.
 3. The system directory. Use the `GetSystemDirectory` function to get the
 path of this directory.
 4. The 16-bit system directory. There is no function that obtains the path
 of this directory, but it is searched.
 5. The Windows directory. Use the `GetWindowsDirectory` function to get
 the path of this directory.
 6. The directories that are listed in the `PATH` environment variable.
 Note that this does not include the per-application path specified by the
 App Paths registry key. The App Paths key is not used when computing the
 DLL search path.

 So what this means is given two DLLs `A` and `B` and `B` depending on `A`.
 If we put both DLLs into a new folder `bin` and then call GHC with:

 `ghc -L$(PWD)/bin -lB`

 the loading will fail as the Windows loader will try to load the
 dependency of `B` and fail since it cannot find `A`.

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


More information about the ghc-tickets mailing list