X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fbacktrace.c;h=98189b91a883d27d892753467b1976db71a525eb;hb=cc32d78e47dfcad7634e26e69797094ed683a888;hp=07114aa1b06f101c47d478f63fe7dc6035d520c5;hpb=2f217659a45a04a5f4b78855bf18a4e64bc04840;p=sbcl.git diff --git a/src/runtime/backtrace.c b/src/runtime/backtrace.c index 07114aa..98189b9 100644 --- a/src/runtime/backtrace.c +++ b/src/runtime/backtrace.c @@ -34,9 +34,11 @@ #include "thread.h" #ifdef LISP_FEATURE_OS_PROVIDES_DLADDR +# ifndef __USE_GNU /* __USE_GNU needed if we want dladdr() and Dl_Info from glibc. */ -#define __USE_GNU -#include "dlfcn.h" +# define __USE_GNU +# endif +# include "dlfcn.h" #endif #if !(defined(LISP_FEATURE_X86) || defined(LISP_FEATURE_X86_64)) @@ -285,11 +287,15 @@ backtrace(int nframes) static int altstack_pointer_p (void *p) { - char* stack_start = ((char *) arch_os_get_current_thread()) - + dynamic_values_bytes; - char* stack_end = stack_start + 32*SIGSTKSZ; +#ifndef LISP_FEATURE_WIN32 + void* stack_start = arch_os_get_current_thread() + dynamic_values_bytes; + void* stack_end = stack_start + 32*SIGSTKSZ; return (p > stack_start && p <= stack_end); +#else + /* Win32 doesn't do altstack */ + return 0; +#endif } static int @@ -573,7 +579,6 @@ void backtrace(int nframes) { void *fp; - int i; #if defined(LISP_FEATURE_X86) asm("movl %%ebp,%0" : "=g" (fp));