summaryrefslogtreecommitdiff
path: root/libraries
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2022-03-21 18:56:42 -0400
committerBen Gamari <ben@smart-cactus.org>2022-04-06 16:25:25 -0400
commit7e8cc293702354bec350c4d3c784a70cd8f7ffe4 (patch)
tree611f581939fa6dfd9c5e0d03f64fa2c973897ff1 /libraries
parent655e7d8f968eeaabfc02329d7ac9361678364c06 (diff)
downloadhaskell-7e8cc293702354bec350c4d3c784a70cd8f7ffe4.tar.gz
rts/PEi386: Rework linker
This is a significant rework of the PEi386 linker, making the linker compatible with high image base addresses. Specifically, we now use the m32 allocator instead of `HeapAllocate`. In addition I found a number of latent bugs in our handling of import libraries and relocations. I've added quite a few comments describing what I've learned about Windows import libraries while fixing these. Thanks to Tamar Christina (@Phyx) for providing the address space search logic, countless hours of help while debugging, and his boundless Windows knowledge. Co-Authored-By: Tamar Christina <tamar@zhox.com>
Diffstat (limited to 'libraries')
-rw-r--r--libraries/base/base.cabal7
1 files changed, 5 insertions, 2 deletions
diff --git a/libraries/base/base.cabal b/libraries/base/base.cabal
index 195e32083f..47a179df0e 100644
--- a/libraries/base/base.cabal
+++ b/libraries/base/base.cabal
@@ -387,8 +387,11 @@ Library
-- ole32: provides UUID functionality.
-- rpcrt4: provides RPC UUID creation.
-- ntdll: provides access to functions to inspect window handles
- extra-libraries: wsock32, user32, shell32, msvcrt, mingw32,
- mingwex, ws2_32, shlwapi, ole32, rpcrt4, ntdll
+ -- kernel32: provides GetConsoleCP
+ -- advapi32: provides advanced kernel functions
+ extra-libraries:
+ wsock32, user32, shell32, msvcrt, mingw32, kernel32, advapi32,
+ mingwex, ws2_32, shlwapi, ole32, rpcrt4, ntdll
-- Minimum supported Windows version.
-- These numbers can be found at:
-- https://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx