[commit: ghc] master: Fix 32 bit windows build (4778cba)
git at git.haskell.org
git at git.haskell.org
Mon May 28 18:29:59 UTC 2018
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/4778cba1dbb6adf495930322d7f9e9db0af60d8f/ghc
>---------------------------------------------------------------
commit 4778cba1dbb6adf495930322d7f9e9db0af60d8f
Author: Tamar Christina <tamar at zhox.com>
Date: Mon May 28 19:19:18 2018 +0100
Fix 32 bit windows build
Summary:
Fix a number of issues that have broken the 32 bit build.
This makes it build again.
Test Plan: ./validate
Reviewers: hvr, goldfire, bgamari, erikd, simonmar
Reviewed By: bgamari
Subscribers: rwbarton, thomie, carter
Differential Revision: https://phabricator.haskell.org/D4691
>---------------------------------------------------------------
4778cba1dbb6adf495930322d7f9e9db0af60d8f
libraries/base/System/Environment/ExecutablePath.hsc | 3 ++-
rts/Adjustor.c | 1 +
rts/win32/OSThreads.c | 2 +-
rts/win32/veh_excn.c | 2 +-
4 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/libraries/base/System/Environment/ExecutablePath.hsc b/libraries/base/System/Environment/ExecutablePath.hsc
index 448cade..095b25c 100644
--- a/libraries/base/System/Environment/ExecutablePath.hsc
+++ b/libraries/base/System/Environment/ExecutablePath.hsc
@@ -40,6 +40,7 @@ import Foreign.C
import Foreign.Marshal.Array
import Foreign.Ptr
#include <windows.h>
+#include <stdint.h>
#else
import Foreign.C
import Foreign.Marshal.Alloc
@@ -169,7 +170,7 @@ getExecutablePath = go 2048 -- plenty, PATH_MAX is 512 under Win32
getFinalPath :: FilePath -> IO FilePath
getFinalPath path = withCWString path $ \s ->
bracket (createFile s) c_closeHandle $ \h -> do
- let invalid = h == wordPtrToPtr (#const INVALID_HANDLE_VALUE)
+ let invalid = h == wordPtrToPtr (#const (intptr_t)INVALID_HANDLE_VALUE)
if invalid then pure path else go h bufSize
where go h sz = allocaArray (fromIntegral sz) $ \outPath -> do
diff --git a/rts/Adjustor.c b/rts/Adjustor.c
index f2b4355..a1bfeb9 100644
--- a/rts/Adjustor.c
+++ b/rts/Adjustor.c
@@ -357,6 +357,7 @@ static int totalArgumentSize(char *typeString)
sz += 2;
break;
}
+ /* fall through */
// everything else is one word.
default:
sz += 1;
diff --git a/rts/win32/OSThreads.c b/rts/win32/OSThreads.c
index cc67353..c67d621 100644
--- a/rts/win32/OSThreads.c
+++ b/rts/win32/OSThreads.c
@@ -578,7 +578,7 @@ void setThreadNode (uint32_t node)
{
if (osNumaAvailable())
{
- StgWord mask = 0;
+ uint64_t mask = 0;
if (!GetNumaNodeProcessorMask(node, &mask) && !SetThreadAffinityMask(GetCurrentThread(), mask))
{
sysErrorBelch(
diff --git a/rts/win32/veh_excn.c b/rts/win32/veh_excn.c
index a4e5ef6..2d9de52 100644
--- a/rts/win32/veh_excn.c
+++ b/rts/win32/veh_excn.c
@@ -314,7 +314,7 @@ void generateStack (EXCEPTION_POINTERS* pExceptionPointers)
fprintf (stderr, " * 0x%" PRIxPTR "\t%ls\n",
(uintptr_t)stackFrame.AddrFrame.Offset,
resolveSymbolAddr ((wchar_t*)&buffer, 1024,
- (SymbolAddr*)stackFrame.AddrPC.Offset,
+ (SymbolAddr*)(intptr_t)stackFrame.AddrPC.Offset,
&topSp));
if (lastBp >= stackFrame.AddrFrame.Offset)
{
More information about the ghc-commits
mailing list