From: Lupe Christoph Date: Mon, 22 Jun 1998 13:02:45 +0000 (+0200) Subject: updated hints file to cope with buggy sigsetjmp() on Solaris-x86 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=ef6cdfd2324258dbd7407fe0d1d6f2386b953d5a;p=p5sagit%2Fp5-mst-13.2.git updated hints file to cope with buggy sigsetjmp() on Solaris-x86 Message-Id: <199806221102.NAA12106@alanya.m.isar.de> Subject: Re: Perl 5.004_67: Death is on vacation - miniperl can't die p4raw-id: //depot/perl@1193 --- diff --git a/hints/solaris_2.sh b/hints/solaris_2.sh index 9a1ccb9..6f5ee32 100644 --- a/hints/solaris_2.sh +++ b/hints/solaris_2.sh @@ -257,12 +257,30 @@ if [ "X$usethreads" = "X$define" ]; then # when linked with the threads library, such that whatever positive value # you pass to siglongjmp(), sigsetjmp() returns 1. # Thanks to Simon Parsons for this report. - if test "`arch`" = i86pc -a "$osvers" = 2.6; then - d_sigaction=$undef + # Sun BugID is 4117946, "sigsetjmp always returns 1 when called by + # siglongjmp in a MT program". As of 19980622, there is no patch + # available. + cat >try.c <<'EOM' + /* Test for sig(set|long)jmp bug. */ + #include + + main() + { + sigjmp_buf env; + int ret; + + ret = sigsetjmp(env, 1); + if (ret) { return ret == 2; } + siglongjmp(env, 2); + } +EOM + if test "`arch`" = i86pc -a "$osvers" = 2.6 \ + && ${cc:-cc} try.c -lpthread >/dev/null 2>&1 && ./a.out; then + d_sigsetjmp=$undef cat << 'EOM' >&2 You will see a *** WHOA THERE!!! *** message from Configure for -d_sigaction. Keep the recommended value. See hints/solaris_2.sh +d_sigsetjmp. Keep the recommended value. See hints/solaris_2.sh for more information. EOM