diff options
| author | Brian <brian@yutani.localnet.net> | 2007-02-22 08:53:33 -0700 |
|---|---|---|
| committer | Brian <brian@yutani.localnet.net> | 2007-02-22 08:53:33 -0700 |
| commit | 29c471aafc6a3fef23d553e31a555d1782854a77 (patch) | |
| tree | 335385fd55d510118346136c6feb4daa707988b6 /src/glut/fbdev/fbdev.c | |
| parent | 6d4cf6be4e79c3a6ab18272577df17389e3834a6 (diff) | |
| parent | a4b344baa2484c65a1618f3cce3a94c91dea8ef7 (diff) | |
Merge branch 'origin' into glsl-compiler-1
Conflicts:
src/mesa/main/state.c
src/mesa/shader/program.c
src/mesa/shader/program.h
src/mesa/shader/programopt.c
src/mesa/shader/slang/slang_execute.c
src/mesa/sources
src/mesa/swrast/s_arbshader.c
src/mesa/swrast/s_context.c
src/mesa/swrast/s_span.c
src/mesa/swrast/s_zoom.c
src/mesa/tnl/t_context.c
src/mesa/tnl/t_save_api.c
src/mesa/tnl/t_vb_arbprogram.c
src/mesa/tnl/t_vp_build.c
src/mesa/tnl/t_vtx_eval.c
Diffstat (limited to 'src/glut/fbdev/fbdev.c')
| -rw-r--r-- | src/glut/fbdev/fbdev.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/glut/fbdev/fbdev.c b/src/glut/fbdev/fbdev.c index 3b63cd70ea..80237f5bc7 100644 --- a/src/glut/fbdev/fbdev.c +++ b/src/glut/fbdev/fbdev.c @@ -173,6 +173,9 @@ void glutInit (int *argcp, char **argv) int RequiredWidth = 0, RequiredHeight; char *fbdev; + stack_t stack; + struct sigaction sa; + /* parse out args */ for (i = 1; i < *argcp;) { if (!strcmp(argv[i], "-geometry")) { @@ -239,7 +242,19 @@ void glutInit (int *argcp, char **argv) gettimeofday(&StartTime, 0); atexit(Cleanup); - signal(SIGSEGV, CrashHandler); + /* set up SIGSEGV to use alternate stack */ + stack.ss_flags = 0; + stack.ss_size = SIGSTKSZ; + if(!(stack.ss_sp = malloc(SIGSTKSZ))) + sprintf(exiterror, "Failed to allocate alternate stack for SIGSEGV!\n"); + + sigaltstack(&stack, NULL); + + sa.sa_handler = CrashHandler; + sa.sa_flags = SA_ONSTACK; + sigemptyset(&sa.sa_mask); + sigaction(SIGSEGV, &sa, NULL); + signal(SIGINT, CrashHandler); signal(SIGTERM, CrashHandler); signal(SIGABRT, CrashHandler); |
