diff options
author | Ben Gamari <ben@smart-cactus.org> | 2022-03-21 18:56:42 -0400 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2022-04-06 16:25:25 -0400 |
commit | 7e8cc293702354bec350c4d3c784a70cd8f7ffe4 (patch) | |
tree | 611f581939fa6dfd9c5e0d03f64fa2c973897ff1 /libraries | |
parent | 655e7d8f968eeaabfc02329d7ac9361678364c06 (diff) | |
download | haskell-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.cabal | 7 |
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 |