Mesa (master): util: __builtin_frame_address() doesn't work on mingw.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Thu Dec 2 15:15:09 UTC 2010


Module: Mesa
Branch: master
Commit: 50a52ba67e06fa00e06d19370a0478a85f9011be
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=50a52ba67e06fa00e06d19370a0478a85f9011be

Author: José Fonseca <jfonseca at vmware.com>
Date:   Thu Dec  2 15:14:07 2010 +0000

util: __builtin_frame_address() doesn't work on mingw.

---

 src/gallium/auxiliary/util/u_debug_stack.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/src/gallium/auxiliary/util/u_debug_stack.c b/src/gallium/auxiliary/util/u_debug_stack.c
index 528a1c3..24e039f 100644
--- a/src/gallium/auxiliary/util/u_debug_stack.c
+++ b/src/gallium/auxiliary/util/u_debug_stack.c
@@ -48,7 +48,10 @@ debug_backtrace_capture(struct debug_stack_frame *backtrace,
    if(!nr_frames)
       return;
 
-#if defined(PIPE_CC_GCC)
+#if defined(PIPE_CC_GCC) && defined(PIPE_ARCH_X86)
+   __asm__ __volatile__("mov (%%ebp),%0": "=r" (frame_pointer));
+   frame_pointer = (const void **)frame_pointer[0];
+#elif defined(PIPE_CC_GCC)
    frame_pointer = ((const void **)__builtin_frame_address(1));
 #elif defined(PIPE_CC_MSVC) && defined(PIPE_ARCH_X86)
    __asm {




More information about the mesa-commit mailing list