Stack overflow detection for MacOSX/Intel
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7691 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02master
parent
ae5fcbb4c2
commit
34430286a5
|
@ -70,11 +70,28 @@
|
|||
static void name(int sig, siginfo_t * info, void * context)
|
||||
|
||||
#define SET_SIGACT(sigact,name) \
|
||||
sigact.sa_sigaction = (name);
|
||||
sigact.sa_sigaction = (name); \
|
||||
sigact.sa_flags = SA_SIGINFO
|
||||
|
||||
#define CONTEXT_FAULTING_ADDRESS ((char *) info->si_addr)
|
||||
|
||||
/****************** I386, MacOS X */
|
||||
|
||||
#elif defined(TARGET_i386) && defined(SYS_macosx)
|
||||
|
||||
#define DECLARE_SIGNAL_HANDLER(name) \
|
||||
static void name(int sig, siginfo_t * info, void * context)
|
||||
|
||||
#define SET_SIGACT(sigact,name) \
|
||||
sigact.sa_sigaction = (name); \
|
||||
sigact.sa_flags = SA_SIGINFO
|
||||
|
||||
#include <sys/ucontext.h>
|
||||
|
||||
#define CONTEXT_STATE (((struct ucontext *)context)->uc_mcontext->ss)
|
||||
#define CONTEXT_PC (CONTEXT_STATE.eip)
|
||||
#define CONTEXT_FAULTING_ADDRESS ((char *) info->si_addr)
|
||||
|
||||
/****************** MIPS, all OS */
|
||||
|
||||
#elif defined(TARGET_mips)
|
||||
|
|
|
@ -1033,7 +1033,7 @@ fi
|
|||
# Determine if system stack overflows can be detected
|
||||
|
||||
case "$arch,$system" in
|
||||
i386,linux_elf|amd64,linux|power,rhapsody)
|
||||
i386,linux_elf|amd64,linux|power,rhapsody|i386,macosx)
|
||||
echo "System stack overflow can be detected."
|
||||
echo "#define HAS_STACK_OVERFLOW_DETECTION" >> s.h;;
|
||||
*)
|
||||
|
|
Loading…
Reference in New Issue