summaryrefslogtreecommitdiffstats
path: root/configure
diff options
context:
space:
mode:
authorAlbert Cheng <acheng@hdfgroup.org>2010-04-28 19:56:29 (GMT)
committerAlbert Cheng <acheng@hdfgroup.org>2010-04-28 19:56:29 (GMT)
commit2bf52ee03ef0a1f8663d40b1ac0f8fe2d4934720 (patch)
tree9491fccce38c18b3f102485914e6516ab2fa5528 /configure
parentfadbd8866f5741da77a369fd015c82db5b191294 (diff)
downloadhdf5-2bf52ee03ef0a1f8663d40b1ac0f8fe2d4934720.zip
hdf5-2bf52ee03ef0a1f8663d40b1ac0f8fe2d4934720.tar.gz
hdf5-2bf52ee03ef0a1f8663d40b1ac0f8fe2d4934720.tar.bz2
[svn-r18659] Bug: 1764
Description: longjmp do not necessary restore signal that is blocked during the signal handling. This caused the Alignment test to fail quietly, resulting in wrong alignment information which will cause failures later. Solution: One can use sigsetjmp/siglongjmp to restore signal handling but not all systems such as Cray XT or VMS supports sigsetjmp. Backup solution is to use sigprocmask to reset the signal. Again, some systems may not support it either. Added code to try the first and then the second solution. Also added tests to verify if the signal_handler routines are working properly. Finally, added code to print results of the verification (in form of comments) to H5Tinit.c for inspection in case of failure. (Note that many platforms do not have alignment limits at all and ALIGNMNET code never raise the SIGBUS or SIGSEGV errors. In those cases, it does not matter whether the signal handlers work or not. Again, this can be deduced from the results comments near the end of the H5Tinit.c. If the sum of signal handlers called equals the total of verify, it means ALIGNMENT does not raise any signals.) For configure.in and configure: Added the test for setjmp, sigsetjmp, sigprocmask which are used by the H5detec.c. Tested: htcommittested, jam(serial).
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure19
1 files changed, 16 insertions, 3 deletions
diff --git a/configure b/configure
index 233f15e..6aa0a0e 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
#! /bin/sh
-# From configure.in Id: configure.in 18634 2010-04-27 18:25:31Z koziol .
+# From configure.in Id: configure.in 18648 2010-04-27 21:35:53Z songyulu .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.65 for HDF5 1.9.68.
#
@@ -24825,7 +24825,7 @@ _ACEOF
fi
done
-for ac_func in gethostname getpwuid getrusage longjmp lstat
+for ac_func in gethostname getpwuid getrusage lstat
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
@@ -24838,7 +24838,20 @@ _ACEOF
fi
done
-for ac_func in rand_r random setsysinfo siglongjmp signal
+for ac_func in rand_r random setsysinfo
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+eval as_val=\$$as_ac_var
+ if test "x$as_val" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+for ac_func in signal longjmp setjmp siglongjmp sigsetjmp sigprocmask
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"