[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