1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-02 13:00:26 +02:00

* configure.in: check availability of siginterrupt.

* scmsigs.c (scm_sigaction): add SA_RESTART to flags only if
	HAVE_RESTARTABLE_SYSCALLS.
	(scm_init_scmsigs): use siginterrupt if it's available.  not
	everyone who has restartable syscalls has SA_RESTART it seems.
	(scm_sigaction): use scm_num2long/scm_long2num when converting
	SIG_DFL/SIG_IGN, in case it doesn't fit in an INUM.  use
	scm_integer_p to test the type.
This commit is contained in:
Gary Houston 1999-09-20 21:32:23 +00:00
parent 240ed66f84
commit 7ee92fcefd
6 changed files with 117 additions and 79 deletions

View file

@ -1,3 +1,7 @@
1999-09-20 Gary Houston <ghouston@freewire.co.uk>
* configure.in: check availability of siginterrupt.
1999-09-18 Gary Houston <ghouston@freewire.co.uk> 1999-09-18 Gary Houston <ghouston@freewire.co.uk>
* configure.in: use AC_SYS_RESTARTABLE_SYSCALLS instead of * configure.in: use AC_SYS_RESTARTABLE_SYSCALLS instead of

131
configure vendored
View file

@ -3247,7 +3247,7 @@ fi
fi fi
for ac_func in ctermid ftime getcwd geteuid gettimeofday lstat mkdir mknod nice readlink rename rmdir select setegid seteuid setlocale setpgid setsid sigaction strftime strptime symlink sync tcgetpgrp tcsetpgrp times uname waitpid bzero strdup system usleep atexit on_exit for ac_func in ctermid ftime getcwd geteuid gettimeofday lstat mkdir mknod nice readlink rename rmdir select setegid seteuid setlocale setpgid setsid sigaction siginterrupt strftime strptime symlink sync tcgetpgrp tcsetpgrp times uname waitpid bzero strdup system usleep atexit on_exit
do do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3254: checking for $ac_func" >&5 echo "configure:3254: checking for $ac_func" >&5
@ -3628,8 +3628,9 @@ done
echo $ac_n "checking for restartable system calls""... $ac_c" 1>&6 echo $ac_n "checking for restartable system calls""... $ac_c" 1>&6
echo "configure:3633: checking for restartable system calls" >&5 echo "configure:3634: checking for restartable system calls" >&5
if eval "test \"`echo '$''{'ac_cv_sys_restartable_syscalls'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_sys_restartable_syscalls'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
@ -3637,7 +3638,7 @@ else
{ echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3641 "configure" #line 3642 "configure"
#include "confdefs.h" #include "confdefs.h"
/* Exit 0 (true) if wait returns something other than -1, /* Exit 0 (true) if wait returns something other than -1,
i.e. the pid of the child, which means that wait was restarted i.e. the pid of the child, which means that wait was restarted
@ -3655,7 +3656,7 @@ main () {
} }
EOF EOF
if { (eval echo configure:3659: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null if { (eval echo configure:3660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then then
ac_cv_sys_restartable_syscalls=yes ac_cv_sys_restartable_syscalls=yes
else else
@ -3682,12 +3683,12 @@ if test "$ac_cv_header_regex_h" = yes ||
test "$ac_cv_header_rxposix_h" = yes || test "$ac_cv_header_rxposix_h" = yes ||
test "$ac_cv_header_rx_rxposix_h" = yes; then test "$ac_cv_header_rx_rxposix_h" = yes; then
echo $ac_n "checking for regcomp""... $ac_c" 1>&6 echo $ac_n "checking for regcomp""... $ac_c" 1>&6
echo "configure:3686: checking for regcomp" >&5 echo "configure:3687: checking for regcomp" >&5
if eval "test \"`echo '$''{'ac_cv_func_regcomp_norx'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_func_regcomp_norx'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3691 "configure" #line 3692 "configure"
#include "confdefs.h" #include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes, /* System header to define __stub macros and hopefully few prototypes,
which can conflict with char regcomp(); below. */ which can conflict with char regcomp(); below. */
@ -3710,7 +3711,7 @@ regcomp();
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3714: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:3715: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_func_regcomp_norx=yes" eval "ac_cv_func_regcomp_norx=yes"
else else
@ -3728,7 +3729,7 @@ if eval "test \"`echo '$ac_cv_func_'regcomp'_'norx`\" = yes"; then
else else
echo "$ac_t""no" 1>&6 echo "$ac_t""no" 1>&6
echo $ac_n "checking for main in -lrx""... $ac_c" 1>&6 echo $ac_n "checking for main in -lrx""... $ac_c" 1>&6
echo "configure:3732: checking for main in -lrx" >&5 echo "configure:3733: checking for main in -lrx" >&5
ac_lib_var=`echo rx'_'main | sed 'y%./+-%__p_%'` ac_lib_var=`echo rx'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
@ -3736,14 +3737,14 @@ else
ac_save_LIBS="$LIBS" ac_save_LIBS="$LIBS"
LIBS="-lrx $LIBS" LIBS="-lrx $LIBS"
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3740 "configure" #line 3741 "configure"
#include "confdefs.h" #include "confdefs.h"
int main() { int main() {
main() main()
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3747: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:3748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes" eval "ac_cv_lib_$ac_lib_var=yes"
else else
@ -3771,12 +3772,12 @@ else
fi fi
echo $ac_n "checking for regcomp""... $ac_c" 1>&6 echo $ac_n "checking for regcomp""... $ac_c" 1>&6
echo "configure:3775: checking for regcomp" >&5 echo "configure:3776: checking for regcomp" >&5
if eval "test \"`echo '$''{'ac_cv_func_regcomp_rx'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_func_regcomp_rx'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3780 "configure" #line 3781 "configure"
#include "confdefs.h" #include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes, /* System header to define __stub macros and hopefully few prototypes,
which can conflict with char regcomp(); below. */ which can conflict with char regcomp(); below. */
@ -3799,7 +3800,7 @@ regcomp();
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3803: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:3804: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_func_regcomp_rx=yes" eval "ac_cv_func_regcomp_rx=yes"
else else
@ -3833,12 +3834,12 @@ fi
for ac_func in inet_aton putenv strerror memmove for ac_func in inet_aton putenv strerror memmove
do do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3837: checking for $ac_func" >&5 echo "configure:3838: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3842 "configure" #line 3843 "configure"
#include "confdefs.h" #include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes, /* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */ which can conflict with char $ac_func(); below. */
@ -3861,7 +3862,7 @@ $ac_func();
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:3866: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_func_$ac_func=yes" eval "ac_cv_func_$ac_func=yes"
else else
@ -3894,19 +3895,19 @@ done
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless! # for constant arguments. Useless!
echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
echo "configure:3898: checking for working alloca.h" >&5 echo "configure:3899: checking for working alloca.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3903 "configure" #line 3904 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <alloca.h> #include <alloca.h>
int main() { int main() {
char *p = alloca(2 * sizeof(int)); char *p = alloca(2 * sizeof(int));
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:3911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
ac_cv_header_alloca_h=yes ac_cv_header_alloca_h=yes
else else
@ -3927,12 +3928,12 @@ EOF
fi fi
echo $ac_n "checking for alloca""... $ac_c" 1>&6 echo $ac_n "checking for alloca""... $ac_c" 1>&6
echo "configure:3931: checking for alloca" >&5 echo "configure:3932: checking for alloca" >&5
if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3936 "configure" #line 3937 "configure"
#include "confdefs.h" #include "confdefs.h"
#ifdef __GNUC__ #ifdef __GNUC__
@ -3960,7 +3961,7 @@ int main() {
char *p = (char *) alloca(1); char *p = (char *) alloca(1);
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:3965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
ac_cv_func_alloca_works=yes ac_cv_func_alloca_works=yes
else else
@ -3992,12 +3993,12 @@ EOF
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
echo "configure:3996: checking whether alloca needs Cray hooks" >&5 echo "configure:3997: checking whether alloca needs Cray hooks" >&5
if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4001 "configure" #line 4002 "configure"
#include "confdefs.h" #include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2) #if defined(CRAY) && ! defined(CRAY2)
webecray webecray
@ -4022,12 +4023,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
if test $ac_cv_os_cray = yes; then if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do for ac_func in _getb67 GETB67 getb67; do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:4026: checking for $ac_func" >&5 echo "configure:4027: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4031 "configure" #line 4032 "configure"
#include "confdefs.h" #include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes, /* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */ which can conflict with char $ac_func(); below. */
@ -4050,7 +4051,7 @@ $ac_func();
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4054: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:4055: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_func_$ac_func=yes" eval "ac_cv_func_$ac_func=yes"
else else
@ -4077,7 +4078,7 @@ done
fi fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
echo "configure:4081: checking stack direction for C alloca" >&5 echo "configure:4082: checking stack direction for C alloca" >&5
if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
@ -4085,7 +4086,7 @@ else
ac_cv_c_stack_direction=0 ac_cv_c_stack_direction=0
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4089 "configure" #line 4090 "configure"
#include "confdefs.h" #include "confdefs.h"
find_stack_direction () find_stack_direction ()
{ {
@ -4104,7 +4105,7 @@ main ()
exit (find_stack_direction() < 0); exit (find_stack_direction() < 0);
} }
EOF EOF
if { (eval echo configure:4108: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null if { (eval echo configure:4109: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then then
ac_cv_c_stack_direction=1 ac_cv_c_stack_direction=1
else else
@ -4128,12 +4129,12 @@ fi
if test "$ALLOCA" = "alloca.o"; then LIBOBJS="alloca.o $LIBOBJS"; fi if test "$ALLOCA" = "alloca.o"; then LIBOBJS="alloca.o $LIBOBJS"; fi
echo $ac_n "checking for st_rdev in struct stat""... $ac_c" 1>&6 echo $ac_n "checking for st_rdev in struct stat""... $ac_c" 1>&6
echo "configure:4132: checking for st_rdev in struct stat" >&5 echo "configure:4133: checking for st_rdev in struct stat" >&5
if eval "test \"`echo '$''{'ac_cv_struct_st_rdev'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_struct_st_rdev'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4137 "configure" #line 4138 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
@ -4141,7 +4142,7 @@ int main() {
struct stat s; s.st_rdev; struct stat s; s.st_rdev;
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4145: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:4146: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
ac_cv_struct_st_rdev=yes ac_cv_struct_st_rdev=yes
else else
@ -4162,12 +4163,12 @@ EOF
fi fi
echo $ac_n "checking for st_blksize in struct stat""... $ac_c" 1>&6 echo $ac_n "checking for st_blksize in struct stat""... $ac_c" 1>&6
echo "configure:4166: checking for st_blksize in struct stat" >&5 echo "configure:4167: checking for st_blksize in struct stat" >&5
if eval "test \"`echo '$''{'ac_cv_struct_st_blksize'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_struct_st_blksize'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4171 "configure" #line 4172 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
@ -4175,7 +4176,7 @@ int main() {
struct stat s; s.st_blksize; struct stat s; s.st_blksize;
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4179: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:4180: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
ac_cv_struct_st_blksize=yes ac_cv_struct_st_blksize=yes
else else
@ -4199,12 +4200,12 @@ fi
# We could use AC_STRUCT_ST_BLOCKS here, but that adds fileblocks.o to # We could use AC_STRUCT_ST_BLOCKS here, but that adds fileblocks.o to
# LIBOBJS, which we don't need. This seems more direct. # LIBOBJS, which we don't need. This seems more direct.
echo $ac_n "checking for st_blocks in struct stat""... $ac_c" 1>&6 echo $ac_n "checking for st_blocks in struct stat""... $ac_c" 1>&6
echo "configure:4203: checking for st_blocks in struct stat" >&5 echo "configure:4204: checking for st_blocks in struct stat" >&5
if eval "test \"`echo '$''{'ac_cv_struct_st_blocks'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_struct_st_blocks'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4208 "configure" #line 4209 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
@ -4212,7 +4213,7 @@ int main() {
struct stat s; s.st_blocks; struct stat s; s.st_blocks;
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4216: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:4217: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
ac_cv_struct_st_blocks=yes ac_cv_struct_st_blocks=yes
else else
@ -4233,12 +4234,12 @@ EOF
fi fi
echo $ac_n "checking for S_ISLNK in sys/stat.h""... $ac_c" 1>&6 echo $ac_n "checking for S_ISLNK in sys/stat.h""... $ac_c" 1>&6
echo "configure:4237: checking for S_ISLNK in sys/stat.h" >&5 echo "configure:4238: checking for S_ISLNK in sys/stat.h" >&5
if eval "test \"`echo '$''{'ac_cv_macro_S_ISLNK'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_macro_S_ISLNK'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4242 "configure" #line 4243 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <sys/stat.h> #include <sys/stat.h>
#ifndef S_ISLNK #ifndef S_ISLNK
@ -4246,7 +4247,7 @@ else
#endif #endif
EOF EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4250: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } { (eval echo configure:4251: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then if test -z "$ac_err"; then
rm -rf conftest* rm -rf conftest*
@ -4270,12 +4271,12 @@ EOF
fi fi
echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
echo "configure:4274: checking whether struct tm is in sys/time.h or time.h" >&5 echo "configure:4275: checking whether struct tm is in sys/time.h or time.h" >&5
if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4279 "configure" #line 4280 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <sys/types.h> #include <sys/types.h>
#include <time.h> #include <time.h>
@ -4283,7 +4284,7 @@ int main() {
struct tm *tp; tp->tm_sec; struct tm *tp; tp->tm_sec;
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4287: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:4288: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
ac_cv_struct_tm=time.h ac_cv_struct_tm=time.h
else else
@ -4304,12 +4305,12 @@ EOF
fi fi
echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6 echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6
echo "configure:4308: checking for tm_zone in struct tm" >&5 echo "configure:4309: checking for tm_zone in struct tm" >&5
if eval "test \"`echo '$''{'ac_cv_struct_tm_zone'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_struct_tm_zone'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4313 "configure" #line 4314 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <sys/types.h> #include <sys/types.h>
#include <$ac_cv_struct_tm> #include <$ac_cv_struct_tm>
@ -4317,7 +4318,7 @@ int main() {
struct tm tm; tm.tm_zone; struct tm tm; tm.tm_zone;
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4321: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:4322: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
ac_cv_struct_tm_zone=yes ac_cv_struct_tm_zone=yes
else else
@ -4337,12 +4338,12 @@ EOF
else else
echo $ac_n "checking for tzname""... $ac_c" 1>&6 echo $ac_n "checking for tzname""... $ac_c" 1>&6
echo "configure:4341: checking for tzname" >&5 echo "configure:4342: checking for tzname" >&5
if eval "test \"`echo '$''{'ac_cv_var_tzname'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_var_tzname'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4346 "configure" #line 4347 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <time.h> #include <time.h>
#ifndef tzname /* For SGI. */ #ifndef tzname /* For SGI. */
@ -4352,7 +4353,7 @@ int main() {
atoi(*tzname); atoi(*tzname);
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4356: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:4357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
ac_cv_var_tzname=yes ac_cv_var_tzname=yes
else else
@ -4375,12 +4376,12 @@ fi
echo $ac_n "checking whether we need POSIX to get struct utimbuf""... $ac_c" 1>&6 echo $ac_n "checking whether we need POSIX to get struct utimbuf""... $ac_c" 1>&6
echo "configure:4379: checking whether we need POSIX to get struct utimbuf" >&5 echo "configure:4380: checking whether we need POSIX to get struct utimbuf" >&5
if eval "test \"`echo '$''{'guile_cv_struct_utimbuf_needs_posix'+set}'`\" = set"; then if eval "test \"`echo '$''{'guile_cv_struct_utimbuf_needs_posix'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4384 "configure" #line 4385 "configure"
#include "confdefs.h" #include "confdefs.h"
#ifdef __EMX__ #ifdef __EMX__
@ -4392,7 +4393,7 @@ struct utime blah;
EOF EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4396: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } { (eval echo configure:4397: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then if test -z "$ac_err"; then
rm -rf conftest* rm -rf conftest*
@ -4425,13 +4426,13 @@ if test "$cross_compiling" = yes; then
echo "configure: warning: Guessing that stack grows down -- see scmconfig.h.in" 1>&2 echo "configure: warning: Guessing that stack grows down -- see scmconfig.h.in" 1>&2
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4429 "configure" #line 4430 "configure"
#include "confdefs.h" #include "confdefs.h"
aux (l) unsigned long l; aux (l) unsigned long l;
{ int x; exit (l >= ((unsigned long)&x)); } { int x; exit (l >= ((unsigned long)&x)); }
main () { int q; aux((unsigned long)&q); } main () { int q; aux((unsigned long)&q); }
EOF EOF
if { (eval echo configure:4435: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null if { (eval echo configure:4436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then then
cat >> confdefs.h <<\EOF cat >> confdefs.h <<\EOF
#define SCM_STACK_GROWS_UP 1 #define SCM_STACK_GROWS_UP 1
@ -4446,7 +4447,7 @@ fi
echo $ac_n "checking whether floats fit in longs""... $ac_c" 1>&6 echo $ac_n "checking whether floats fit in longs""... $ac_c" 1>&6
echo "configure:4450: checking whether floats fit in longs" >&5 echo "configure:4451: checking whether floats fit in longs" >&5
if eval "test \"`echo '$''{'guile_cv_type_float_fits_long'+set}'`\" = set"; then if eval "test \"`echo '$''{'guile_cv_type_float_fits_long'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
@ -4454,11 +4455,11 @@ else
guile_cv_type_float_fits_long=guess-yes guile_cv_type_float_fits_long=guess-yes
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4458 "configure" #line 4459 "configure"
#include "confdefs.h" #include "confdefs.h"
main () { exit (sizeof(float) > sizeof(long)); } main () { exit (sizeof(float) > sizeof(long)); }
EOF EOF
if { (eval echo configure:4462: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null if { (eval echo configure:4463: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then then
guile_cv_type_float_fits_long=yes guile_cv_type_float_fits_long=yes
else else
@ -4492,12 +4493,12 @@ esac
echo $ac_n "checking for struct linger""... $ac_c" 1>&6 echo $ac_n "checking for struct linger""... $ac_c" 1>&6
echo "configure:4496: checking for struct linger" >&5 echo "configure:4497: checking for struct linger" >&5
if eval "test \"`echo '$''{'scm_cv_struct_linger'+set}'`\" = set"; then if eval "test \"`echo '$''{'scm_cv_struct_linger'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4501 "configure" #line 4502 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <sys/types.h> #include <sys/types.h>
@ -4506,7 +4507,7 @@ int main() {
struct linger lgr; lgr.l_linger = 100 struct linger lgr; lgr.l_linger = 100
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4510: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:4511: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
scm_cv_struct_linger="yes" scm_cv_struct_linger="yes"
else else
@ -4566,7 +4567,7 @@ fi
### Turn $with_threads into either the name of a threads package, like ### Turn $with_threads into either the name of a threads package, like
### `qt', or `no', meaning that threads should not be supported. ### `qt', or `no', meaning that threads should not be supported.
echo $ac_n "checking whether to support threads""... $ac_c" 1>&6 echo $ac_n "checking whether to support threads""... $ac_c" 1>&6
echo "configure:4570: checking whether to support threads" >&5 echo "configure:4571: checking whether to support threads" >&5
case "$with_threads" in case "$with_threads" in
"yes" | "qt" | "coop" | "") "yes" | "qt" | "coop" | "")
with_threads=qt with_threads=qt
@ -4590,7 +4591,7 @@ case "${with_threads}" in
echo $ac_n "checking QuickThreads configuration""... $ac_c" 1>&6 echo $ac_n "checking QuickThreads configuration""... $ac_c" 1>&6
echo "configure:4594: checking QuickThreads configuration" >&5 echo "configure:4595: checking QuickThreads configuration" >&5
# How can we refer to the qt source directory from within the qt build # How can we refer to the qt source directory from within the qt build
# directory? For headers, we can rely on the fact that the qt src # directory? For headers, we can rely on the fact that the qt src
# directory appears in the #include path. # directory appears in the #include path.
@ -4735,7 +4736,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args. # Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2 set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4739: checking for $ac_word" >&5 echo "configure:4740: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else

View file

@ -130,7 +130,7 @@ fi
GUILE_DLSYM_USCORE GUILE_DLSYM_USCORE
AC_CHECK_FUNCS(ctermid ftime getcwd geteuid gettimeofday lstat mkdir mknod nice readlink rename rmdir select setegid seteuid setlocale setpgid setsid sigaction strftime strptime symlink sync tcgetpgrp tcsetpgrp times uname waitpid bzero strdup system usleep atexit on_exit) AC_CHECK_FUNCS(ctermid ftime getcwd geteuid gettimeofday lstat mkdir mknod nice readlink rename rmdir select setegid seteuid setlocale setpgid setsid sigaction siginterrupt strftime strptime symlink sync tcgetpgrp tcsetpgrp times uname waitpid bzero strdup system usleep atexit on_exit)
### Some systems don't declare some functions. On such systems, we ### Some systems don't declare some functions. On such systems, we
### need to at least provide our own K&R-style declarations. ### need to at least provide our own K&R-style declarations.
@ -208,6 +208,16 @@ AC_CHECK_FUNCS(sethostent gethostent endhostent dnl
dnl </GNU-WIN32 hacks> dnl </GNU-WIN32 hacks>
dnl Test whether system calls are restartable by default on the
dnl current system. If they are not, we put a loop around every system
dnl call to check for EINTR (see SCM_SYSCALL) and do not attempt to
dnl change from the default behaviour. On the other hand, if signals
dnl are restartable then the loop is not installed and when libguile
dnl initialises it also resets the behaviour of each signal to cause a
dnl restart (in case a different runtime had a different default
dnl behaviour for some reason: e.g., different versions of linux seem
dnl to behave differently.)
AC_SYS_RESTARTABLE_SYSCALLS AC_SYS_RESTARTABLE_SYSCALLS
if test "$ac_cv_header_regex_h" = yes || if test "$ac_cv_header_regex_h" = yes ||

View file

@ -1,3 +1,14 @@
1999-09-20 Gary Houston <ghouston@freewire.co.uk>
* scmsigs.c (scm_sigaction): add SA_RESTART to flags only if
HAVE_RESTARTABLE_SYSCALLS.
(scm_init_scmsigs): use siginterrupt if it's available. not
everyone who has restartable syscalls has SA_RESTART it seems.
(scm_sigaction): use scm_num2long/scm_long2num when converting
SIG_DFL/SIG_IGN, in case it doesn't fit in an INUM. use
scm_integer_p to test the type.
1999-09-18 Gary Houston <ghouston@freewire.co.uk> 1999-09-18 Gary Houston <ghouston@freewire.co.uk>
* _scm.h, scmsigs.c: replace HAVE_RESTARTS with * _scm.h, scmsigs.c: replace HAVE_RESTARTS with

View file

@ -321,6 +321,9 @@
/* Define if you have the sigaction function. */ /* Define if you have the sigaction function. */
#undef HAVE_SIGACTION #undef HAVE_SIGACTION
/* Define if you have the siginterrupt function. */
#undef HAVE_SIGINTERRUPT
/* Define if you have the socketpair function. */ /* Define if you have the socketpair function. */
#undef HAVE_SOCKETPAIR #undef HAVE_SOCKETPAIR

View file

@ -192,9 +192,11 @@ scm_sigaction (SCM signum, SCM handler, SCM flags)
SCM_ASSERT (SCM_INUMP (signum), signum, SCM_ARG1, s_sigaction); SCM_ASSERT (SCM_INUMP (signum), signum, SCM_ARG1, s_sigaction);
csig = SCM_INUM (signum); csig = SCM_INUM (signum);
#ifdef HAVE_SIGACTION #if defined(HAVE_SIGACTION)
/* always use restartable system calls if available. */ #if defined(SA_RESTART) && defined(HAVE_RESTARTABLE_SYSCALLS)
#ifdef SA_RESTART /* don't allow SA_RESTART to be omitted if HAVE_RESTARTABLE_SYSCALLS
is defined, since libguile would be likely to produce spurious
EINTR errors. */
action.sa_flags = SA_RESTART; action.sa_flags = SA_RESTART;
#else #else
action.sa_flags = 0; action.sa_flags = 0;
@ -210,12 +212,12 @@ scm_sigaction (SCM signum, SCM handler, SCM flags)
old_handler = scheme_handlers[csig]; old_handler = scheme_handlers[csig];
if (SCM_UNBNDP (handler)) if (SCM_UNBNDP (handler))
query_only = 1; query_only = 1;
else if (SCM_INUMP (handler)) else if (scm_integer_p (handler) == SCM_BOOL_T)
{ {
/* It's really ugly to assume that SIG_DFL can be nicely cast to if (scm_num2long (handler, (char *) SCM_ARG2, s_sigaction)
a fixnum. This has got to go. */ == (long) SIG_DFL
if (SCM_INUM (handler) == (SCM) SIG_DFL || scm_num2long (handler, (char *) SCM_ARG2, s_sigaction)
|| SCM_INUM (handler) == (SCM) SIG_IGN) == (long) SIG_IGN)
{ {
#ifdef HAVE_SIGACTION #ifdef HAVE_SIGACTION
action.sa_handler = (SIGRETTYPE (*) (int)) SCM_INUM (handler); action.sa_handler = (SIGRETTYPE (*) (int)) SCM_INUM (handler);
@ -278,7 +280,7 @@ scm_sigaction (SCM signum, SCM handler, SCM flags)
orig_handlers[csig] = old_action; orig_handlers[csig] = old_action;
} }
if (old_action.sa_handler == SIG_DFL || old_action.sa_handler == SIG_IGN) if (old_action.sa_handler == SIG_DFL || old_action.sa_handler == SIG_IGN)
old_handler = SCM_MAKINUM ((SCM) old_action.sa_handler); old_handler = scm_long2num ((long) old_action.sa_handler);
SCM_ALLOW_INTS; SCM_ALLOW_INTS;
return scm_cons (old_handler, SCM_MAKINUM (old_action.sa_flags)); return scm_cons (old_handler, SCM_MAKINUM (old_action.sa_flags));
#else #else
@ -297,7 +299,7 @@ scm_sigaction (SCM signum, SCM handler, SCM flags)
orig_handlers[csig] = old_chandler; orig_handlers[csig] = old_chandler;
} }
if (old_chandler == SIG_DFL || old_chandler == SIG_IGN) if (old_chandler == SIG_DFL || old_chandler == SIG_IGN)
old_handler = SCM_MAKINUM ((int) old_chandler); old_handler = scm_long2num (old_chandler);
SCM_ALLOW_INTS; SCM_ALLOW_INTS;
return scm_cons (old_handler, SCM_MAKINUM (0)); return scm_cons (old_handler, SCM_MAKINUM (0));
#endif #endif
@ -442,9 +444,13 @@ scm_init_scmsigs ()
#endif #endif
#ifdef HAVE_RESTARTABLE_SYSCALLS #ifdef HAVE_RESTARTABLE_SYSCALLS
/* ensure that system calls will be restarted for all signals. */ /* If HAVE_RESTARTABLE_SYSCALLS is defined, it's important that
/* sigintterupt would be simpler, but it seems better to avoid signals really are restartable. don't rely on the same
dependency on another system call. */ run-time that configure got: reset the default for every signal.
*/
#ifdef HAVE_SIGINTERRUPT
siginterrupt (i, 0);
#elif defined SA_RESTART
{ {
struct sigaction action; struct sigaction action;
@ -455,6 +461,9 @@ scm_init_scmsigs ()
sigaction (i, &action, NULL); sigaction (i, &action, NULL);
} }
} }
#endif
/* if neither siginterrupt nor SA_RESTART are available we may
as well assume that signals are always restartable. */
#endif #endif
} }