diff options
author | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-09-05 15:55:12 +0000 |
---|---|---|
committer | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-09-05 15:55:12 +0000 |
commit | ea08099e88e6f967e14f35b9afb14b97cdbb351f (patch) | |
tree | e550d9e4b8afba9ea48c57fb31a8cdb3c782c427 /configure.in | |
parent | 0f1fb3d6e34cf9d889656e4362dadaeae949403d (diff) |
merge revision(s) r46796: [Backport #10008]
* configure.in (rb_cv_broken_backtrace): exit with failure
normally, no needs to abort. [ruby-core:63678] [Bug #10008]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@47418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/configure.in b/configure.in index b657b1fa3d..fc01f3b425 100644 --- a/configure.in +++ b/configure.in @@ -2886,24 +2886,25 @@ void sigsegv(int signum, siginfo_t *info, void *ctx){ if (n > 0) { /*fprintf(stdout, "backtrace:%d\n",n);*/ } else { - abort(); + _exit(EXIT_FAILURE); } - _exit(0); + _exit(EXIT_SUCCESS); } int -main() +main(void) { + volatile int *a = NULL; stack_t ss; ss.ss_sp = malloc(SIGSTKSZ); if (ss.ss_sp == NULL) { fprintf(stderr, "cannot allocate memory for sigaltstack\n"); - abort(); + return EXIT_FAILURE; } ss.ss_size = SIGSTKSZ; ss.ss_flags = 0; if (sigaltstack(&ss, NULL) == -1) { fprintf(stderr, "sigaltstack failed\n"); - abort(); + return EXIT_FAILURE; } struct sigaction sa; memset(&sa, 0, sizeof(struct sigaction)); @@ -2912,9 +2913,8 @@ main() sa.sa_flags |= SA_SIGINFO; sa.sa_flags |= SA_ONSTACK; sigaction(SIGSEGV, &sa, NULL); - int *a = NULL; a[0] = 1; - return 0; + return EXIT_SUCCESS; } ], rb_cv_broken_backtrace=no, |