forked from mirrors/nixpkgs
33 lines
1.4 KiB
Diff
33 lines
1.4 KiB
Diff
diff --git a/rts/win32/OSMem.c b/rts/win32/OSMem.c
|
|
--- a/rts/win32/OSMem.c
|
|
+++ b/rts/win32/OSMem.c
|
|
@@ -41,7 +41,7 @@ static block_rec* free_blocks = NULL;
|
|
typedef LPVOID(WINAPI *VirtualAllocExNumaProc)(HANDLE, LPVOID, SIZE_T, DWORD, DWORD, DWORD);
|
|
|
|
/* Cache NUMA API call. */
|
|
-VirtualAllocExNumaProc VirtualAllocExNuma;
|
|
+VirtualAllocExNumaProc _VirtualAllocExNuma;
|
|
|
|
void
|
|
osMemInit(void)
|
|
@@ -52,8 +52,8 @@ osMemInit(void)
|
|
/* Resolve and cache VirtualAllocExNuma. */
|
|
if (osNumaAvailable() && RtsFlags.GcFlags.numa)
|
|
{
|
|
- VirtualAllocExNuma = (VirtualAllocExNumaProc)GetProcAddress(GetModuleHandleW(L"kernel32"), "VirtualAllocExNuma");
|
|
- if (!VirtualAllocExNuma)
|
|
+ _VirtualAllocExNuma = (VirtualAllocExNumaProc)(void*)GetProcAddress(GetModuleHandleW(L"kernel32"), "VirtualAllocExNuma");
|
|
+ if (!_VirtualAllocExNuma)
|
|
{
|
|
sysErrorBelch(
|
|
"osBindMBlocksToNode: VirtualAllocExNuma does not exist. How did you get this far?");
|
|
@@ -569,7 +569,7 @@ void osBindMBlocksToNode(
|
|
On windows also -xb is broken, it does nothing so that can't
|
|
be used to tweak it (see #12577). So for now, just let the OS decide.
|
|
*/
|
|
- temp = VirtualAllocExNuma(
|
|
+ temp = _VirtualAllocExNuma(
|
|
GetCurrentProcess(),
|
|
NULL, // addr? See base memory
|
|
size,
|