Merge pull request #14723 from hpvb/fix-thekla-ming-32bit-build

Fix 32bit MingW build for thekla_altas
This commit is contained in:
Hein-Pieter van Braam 2017-12-15 23:32:33 +01:00 committed by GitHub
commit 747d1c96a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 1 deletions

View File

@ -269,7 +269,7 @@ def configure(env):
if (env["openmp"]): if (env["openmp"]):
env.Append(CPPFLAGS=['-fopenmp']) env.Append(CPPFLAGS=['-fopenmp'])
env.Append(LIBS=['gomp']) env.Append(LINKFLAGS=['-fopenmp'])
## Compile flags ## Compile flags

View File

@ -394,8 +394,10 @@ namespace
#pragma warning(disable:4748) #pragma warning(disable:4748)
static NV_NOINLINE int backtrace(void * trace[], int maxcount) { static NV_NOINLINE int backtrace(void * trace[], int maxcount) {
CONTEXT ctx = { 0 }; CONTEXT ctx = { 0 };
// -- GODOT start --
#if NV_CPU_X86 && !NV_CPU_X86_64 #if NV_CPU_X86 && !NV_CPU_X86_64
ctx.ContextFlags = CONTEXT_CONTROL; ctx.ContextFlags = CONTEXT_CONTROL;
#if NV_CC_MSVC
_asm { _asm {
call x call x
x: pop eax x: pop eax
@ -403,6 +405,13 @@ namespace
mov ctx.Ebp, ebp mov ctx.Ebp, ebp
mov ctx.Esp, esp 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 #else
RtlCaptureContext(&ctx); // Not implemented correctly in x86. RtlCaptureContext(&ctx); // Not implemented correctly in x86.
#endif #endif