From 241de95884ae7c0985d03d534b085b1b147ceed8 Mon Sep 17 00:00:00 2001 From: Hein-Pieter van Braam Date: Fri, 15 Dec 2017 23:16:09 +0100 Subject: [PATCH] Fix 32bit MingW build for thekla_altas --- platform/windows/detect.py | 2 +- thirdparty/thekla_atlas/nvcore/Debug.cpp | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/platform/windows/detect.py b/platform/windows/detect.py index bc8be7f0345..01eb50e69c4 100644 --- a/platform/windows/detect.py +++ b/platform/windows/detect.py @@ -269,7 +269,7 @@ def configure(env): if (env["openmp"]): env.Append(CPPFLAGS=['-fopenmp']) - env.Append(LIBS=['gomp']) + env.Append(LINKFLAGS=['-fopenmp']) ## Compile flags diff --git a/thirdparty/thekla_atlas/nvcore/Debug.cpp b/thirdparty/thekla_atlas/nvcore/Debug.cpp index 81498c219ea..4980ffa9163 100644 --- a/thirdparty/thekla_atlas/nvcore/Debug.cpp +++ b/thirdparty/thekla_atlas/nvcore/Debug.cpp @@ -394,8 +394,10 @@ namespace #pragma warning(disable:4748) static NV_NOINLINE int backtrace(void * trace[], int maxcount) { CONTEXT ctx = { 0 }; +// -- GODOT start -- #if NV_CPU_X86 && !NV_CPU_X86_64 ctx.ContextFlags = CONTEXT_CONTROL; +#if NV_CC_MSVC _asm { call x x: pop eax @@ -403,6 +405,13 @@ namespace mov ctx.Ebp, ebp mov ctx.Esp, esp } +#else + register long unsigned int ebp asm("ebp"); + ctx.Eip = (DWORD) __builtin_return_address(0); + ctx.Ebp = ebp; + ctx.Esp = (DWORD) __builtin_frame_address(0); +#endif +// -- GODOT end -- #else RtlCaptureContext(&ctx); // Not implemented correctly in x86. #endif