Imported from ../bash-2.02.tar.gz.
This commit is contained in:
parent
e8ce775db8
commit
cce855bc5b
323 changed files with 33916 additions and 12321 deletions
317
aclocal.m4
vendored
317
aclocal.m4
vendored
|
|
@ -26,7 +26,8 @@ main()
|
|||
exit(fl != 1);
|
||||
}
|
||||
], bash_cv_dup2_broken=yes, bash_cv_dup2_broken=no,
|
||||
AC_MSG_ERROR(cannot check dup2 if cross compiling))
|
||||
[AC_MSG_ERROR(cannot check dup2 if cross compiling -- defaulting to no)
|
||||
bash_cv_dup2_broken=no])
|
||||
])
|
||||
AC_MSG_RESULT($bash_cv_dup2_broken)
|
||||
if test $bash_cv_dup2_broken = yes; then
|
||||
|
|
@ -128,7 +129,8 @@ main()
|
|||
exit(ok ? 0 : 5);
|
||||
}
|
||||
], bash_cv_pgrp_pipe=no,bash_cv_pgrp_pipe=yes,
|
||||
AC_MSG_ERROR(cannot check pgrp synchronization if cross compiling))
|
||||
[AC_MSG_ERROR(cannot check pgrp synchronization if cross compiling -- defaulting to no)
|
||||
bash_cv_pgrp_pipe=no])
|
||||
])
|
||||
AC_MSG_RESULT($bash_cv_pgrp_pipe)
|
||||
if test $bash_cv_pgrp_pipe = yes; then
|
||||
|
|
@ -169,7 +171,8 @@ dnl
|
|||
AC_DEFUN(BASH_RLIMIT_TYPE,
|
||||
[AC_MSG_CHECKING(for size and type of struct rlimit fields)
|
||||
AC_CACHE_VAL(bash_cv_type_rlimit,
|
||||
[AC_TRY_COMPILE([#include <sys/types.h>],
|
||||
[AC_TRY_COMPILE([#include <sys/types.h>
|
||||
#include <sys/resource.h>],
|
||||
[rlim_t xxx;], bash_cv_type_rlimit=rlim_t,[
|
||||
AC_TRY_RUN([
|
||||
#include <sys/types.h>
|
||||
|
|
@ -184,7 +187,8 @@ main()
|
|||
#endif
|
||||
exit(1);
|
||||
}], bash_cv_type_rlimit=quad_t, bash_cv_type_rlimit=long,
|
||||
AC_MSG_ERROR(cannot check quad_t if cross compiling))])
|
||||
[AC_MSG_ERROR(cannot check quad_t if cross compiling -- defaulting to long)
|
||||
bash_cv_type_rlimit=long])])
|
||||
])
|
||||
AC_MSG_RESULT($bash_cv_type_rlimit)
|
||||
if test $bash_cv_type_rlimit = quad_t; then
|
||||
|
|
@ -207,7 +211,7 @@ AC_CACHE_VAL(bash_cv_decl_under_sys_siglist,
|
|||
#include <unistd.h>
|
||||
#endif], [ char *msg = _sys_siglist[2]; ],
|
||||
bash_cv_decl_under_sys_siglist=yes, bash_cv_decl_under_sys_siglist=no,
|
||||
AC_MSG_ERROR(cannot check for _sys_siglist[] if cross compiling))])dnl
|
||||
[AC_MSG_ERROR(cannot check for _sys_siglist[] if cross compiling -- defaulting to no)])])dnl
|
||||
AC_MSG_RESULT($bash_cv_decl_under_sys_siglist)
|
||||
if test $bash_cv_decl_under_sys_siglist = yes; then
|
||||
AC_DEFINE(UNDER_SYS_SIGLIST_DECLARED)
|
||||
|
|
@ -232,8 +236,9 @@ main()
|
|||
char *msg = (char *)_sys_siglist[2];
|
||||
exit(msg == 0);
|
||||
}],
|
||||
bash_cv_under_sys_siglist=yes, bash_cv_under_sys_siglist=no,
|
||||
AC_MSG_ERROR(cannot check for _sys_siglist[] if cross compiling))])dnl
|
||||
bash_cv_under_sys_siglist=yes, bash_cv_under_sys_siglist=no,
|
||||
[AC_MSG_ERROR(cannot check for _sys_siglist[] if cross compiling -- defaulting to no)
|
||||
bash_cv_under_sys_siglist=no])])
|
||||
AC_MSG_RESULT($bash_cv_under_sys_siglist)
|
||||
if test $bash_cv_under_sys_siglist = yes; then
|
||||
AC_DEFINE(HAVE_UNDER_SYS_SIGLIST)
|
||||
|
|
@ -258,8 +263,9 @@ main()
|
|||
char *msg = sys_siglist[2];
|
||||
exit(msg == 0);
|
||||
}],
|
||||
bash_cv_sys_siglist=yes, bash_cv_sys_siglist=no,
|
||||
AC_MSG_ERROR(cannot check for sys_siglist if cross compiling))])dnl
|
||||
bash_cv_sys_siglist=yes, bash_cv_sys_siglist=no,
|
||||
[AC_MSG_ERROR(cannot check for sys_siglist if cross compiling -- defaulting to no)
|
||||
bash_cv_sys_siglist=no])])
|
||||
AC_MSG_RESULT($bash_cv_sys_siglist)
|
||||
if test $bash_cv_sys_siglist = yes; then
|
||||
AC_DEFINE(HAVE_SYS_SIGLIST)
|
||||
|
|
@ -319,7 +325,9 @@ dir = opendir("/tmp/not_a_directory");
|
|||
unlink("/tmp/not_a_directory");
|
||||
exit (dir == 0);
|
||||
}], bash_cv_opendir_not_robust=yes,bash_cv_opendir_not_robust=no,
|
||||
AC_MSG_ERROR(cannot check opendir if cross compiling))])
|
||||
[AC_MSG_ERROR(cannot check opendir if cross compiling -- defaulting to no)
|
||||
bash_cv_opendir_not_robust=no]
|
||||
)])
|
||||
AC_MSG_RESULT($bash_cv_opendir_not_robust)
|
||||
if test $bash_cv_opendir_not_robust = yes; then
|
||||
AC_DEFINE(OPENDIR_NOT_ROBUST)
|
||||
|
|
@ -346,8 +354,116 @@ AC_DEFINE(VOID_SIGHANDLER)
|
|||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN(BASH_TYPE_INT32_T,
|
||||
[
|
||||
if test "X$bash_cv_type_int32_t" = "X"; then
|
||||
_bash_needmsg=yes
|
||||
else
|
||||
AC_MSG_CHECKING(which builtin C type is 32 bits wide)
|
||||
_bash_needmsg=
|
||||
fi
|
||||
AC_CACHE_VAL(bash_cv_type_int32_t,
|
||||
[AC_TRY_RUN([
|
||||
main()
|
||||
{
|
||||
#if SIZEOF_INT == 4
|
||||
exit (0);
|
||||
#else
|
||||
# if SIZEOF_LONG == 4
|
||||
exit (1);
|
||||
# else
|
||||
# error cannot find 32 bit type...
|
||||
# endif
|
||||
#endif
|
||||
}], bash_cv_type_int32_t=int, bash_cv_type_int32_t=long,
|
||||
[AC_MSG_ERROR(cannot check type sizes if cross-compiling -- defaulting to int)
|
||||
bash_cv_type_int32_t=int]
|
||||
)])
|
||||
if test "X$_bash_needmsg" = "Xyes"; then
|
||||
AC_MSG_CHECKING(which builtin C type is 32 bits wide)
|
||||
fi
|
||||
AC_MSG_RESULT($bash_cv_type_int32_t);
|
||||
if test "$bash_cv_type_int32_t" = "int"; then
|
||||
AC_DEFINE(int32_t, int)
|
||||
else
|
||||
AC_DEFINE(int32_t, long)
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN(BASH_TYPE_U_INT32_T,
|
||||
[
|
||||
if test "X$bash_cv_type_u_int32_t" = "X"; then
|
||||
_bash_needmsg=yes
|
||||
else
|
||||
AC_MSG_CHECKING(which unsigned builtin C type is 32 bits wide)
|
||||
_bash_needmsg=
|
||||
fi
|
||||
AC_CACHE_VAL(bash_cv_type_u_int32_t,
|
||||
[AC_TRY_RUN([
|
||||
main()
|
||||
{
|
||||
#if SIZEOF_INT == 4
|
||||
exit (0);
|
||||
#else
|
||||
# if SIZEOF_LONG == 4
|
||||
exit (1);
|
||||
# else
|
||||
# error cannot find 32 bit type...
|
||||
# endif
|
||||
#endif
|
||||
}], bash_cv_type_u_int32_t=int, bash_cv_type_u_int32_t=long,
|
||||
[AC_MSG_ERROR(cannot check type sizes if cross-compiling -- defaulting to int)
|
||||
bash_cv_type_u_int32_t=int]
|
||||
)])
|
||||
if test "X$_bash_needmsg" = "Xyes"; then
|
||||
AC_MSG_CHECKING(which unsigned builtin C type is 32 bits wide)
|
||||
fi
|
||||
AC_MSG_RESULT($bash_cv_type_u_int32_t);
|
||||
if test "$bash_cv_type_u_int32_t" = "int"; then
|
||||
AC_DEFINE(u_int32_t, unsigned int)
|
||||
else
|
||||
AC_DEFINE(u_int32_t, unsigned long)
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN(BASH_TYPE_PTRDIFF_T,
|
||||
[
|
||||
if test "X$bash_cv_type_ptrdiff_t" = "X"; then
|
||||
_bash_needmsg=yes
|
||||
else
|
||||
AC_MSG_CHECKING(which builtin C type is correct for ptrdiff_t)
|
||||
_bash_needmsg=
|
||||
fi
|
||||
AC_CACHE_VAL(bash_cv_type_ptrdiff_t,
|
||||
[AC_TRY_RUN([
|
||||
main()
|
||||
{
|
||||
#if SIZEOF_CHAR_P == SIZEOF_INT
|
||||
exit (0);
|
||||
#else
|
||||
# if SIZEOF_CHAR_P == SIZEOF_LONG
|
||||
exit (1);
|
||||
# else
|
||||
# error cannot find type for pointer arithmetic...
|
||||
# endif
|
||||
#endif
|
||||
}], bash_cv_type_ptrdiff_t=int, bash_cv_type_ptrdiff_t=long,
|
||||
[AC_MSG_ERROR(cannot check type sizes if cross-compiling -- defaulting to int)
|
||||
bash_cv_type_ptrdiff_t=int]
|
||||
)])
|
||||
if test "X$_bash_needmsg" = "Xyes"; then
|
||||
AC_MSG_CHECKING(which builtin C type is correct for ptrdiff_t)
|
||||
fi
|
||||
AC_MSG_RESULT($bash_cv_type_ptrdiff_t);
|
||||
if test "$bash_cv_type_ptrdiff_t" = "int"; then
|
||||
AC_DEFINE(ptrdiff_t, int)
|
||||
else
|
||||
AC_DEFINE(ptrdiff_t, long)
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN(BASH_FUNC_STRSIGNAL,
|
||||
[AC_MSG_CHECKING([for the existance of strsignal])
|
||||
[AC_MSG_CHECKING([for the existence of strsignal])
|
||||
AC_CACHE_VAL(bash_cv_have_strsignal,
|
||||
[AC_TRY_LINK([#include <sys/types.h>
|
||||
#include <signal.h>],
|
||||
|
|
@ -366,7 +482,7 @@ AC_CACHE_CHECK([for lstat], bash_cv_func_lstat,
|
|||
[AC_TRY_LINK([
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
],[ lstat("",(struct stat *)0); ],
|
||||
],[ lstat(".",(struct stat *)0); ],
|
||||
bash_cv_func_lstat=yes, bash_cv_func_lstat=no)])
|
||||
if test $bash_cv_func_lstat = yes; then
|
||||
AC_DEFINE(HAVE_LSTAT)
|
||||
|
|
@ -432,7 +548,9 @@ s = getenv("ABCDE");
|
|||
exit(s == 0); /* force optimizer to leave getenv in */
|
||||
}
|
||||
], bash_cv_getenv_redef=yes, bash_cv_getenv_redef=no,
|
||||
AC_MSG_ERROR(cannot check getenv redefinition if cross compiling))])
|
||||
[AC_MSG_ERROR(cannot check getenv redefinition if cross compiling -- defaulting to yes)
|
||||
bash_cv_getenv_redef=yes]
|
||||
)])
|
||||
AC_MSG_RESULT($bash_cv_getenv_redef)
|
||||
if test $bash_cv_getenv_redef = yes; then
|
||||
AC_DEFINE(CAN_REDEFINE_GETENV)
|
||||
|
|
@ -455,8 +573,10 @@ _bashfunc pf;
|
|||
pf = (_bashfunc) printf;
|
||||
exit(pf == 0);
|
||||
}
|
||||
],bash_cv_printf_declared=yes, bash_cv_printf_declared=no,
|
||||
AC_MSG_ERROR(cannot check printf declaration if cross compiling))])
|
||||
], bash_cv_printf_declared=yes, bash_cv_printf_declared=no,
|
||||
[AC_MSG_ERROR(cannot check printf declaration if cross compiling -- defaulting to yes)
|
||||
bash_cv_printf_declared=yes]
|
||||
)])
|
||||
AC_MSG_RESULT($bash_cv_printf_declared)
|
||||
if test $bash_cv_printf_declared = yes; then
|
||||
AC_DEFINE(PRINTF_DECLARED)
|
||||
|
|
@ -472,8 +592,10 @@ main()
|
|||
long maxfds = ulimit(4, 0L);
|
||||
exit (maxfds == -1L);
|
||||
}
|
||||
],bash_cv_ulimit_maxfds=yes, bash_cv_ulimit_maxfds=no,
|
||||
AC_MSG_ERROR(cannot check ulimit if cross compiling))])
|
||||
], bash_cv_ulimit_maxfds=yes, bash_cv_ulimit_maxfds=no,
|
||||
[AC_MSG_ERROR(cannot check ulimit if cross compiling -- defaulting to no)
|
||||
bash_cv_ulimit_maxfds=no]
|
||||
)])
|
||||
AC_MSG_RESULT($bash_cv_ulimit_maxfds)
|
||||
if test $bash_cv_ulimit_maxfds = yes; then
|
||||
AC_DEFINE(ULIMIT_MAXFDS)
|
||||
|
|
@ -497,7 +619,7 @@ if test "X$_bash_needmsg" = "Xyes"; then
|
|||
AC_MSG_CHECKING(which library has the termcap functions)
|
||||
fi
|
||||
AC_MSG_RESULT(using $bash_cv_termcap_lib)
|
||||
if test $bash_cv_termcap_lib = gnutermcap; then
|
||||
if test $bash_cv_termcap_lib = gnutermcap && test -z "$prefer_curses"; then
|
||||
LDFLAGS="$LDFLAGS -L./lib/termcap"
|
||||
TERMCAP_LIB="./lib/termcap/libtermcap.a"
|
||||
TERMCAP_DEP="./lib/termcap/libtermcap.a"
|
||||
|
|
@ -568,7 +690,9 @@ main()
|
|||
exit (popen_called);
|
||||
}
|
||||
], bash_cv_getcwd_calls_popen=no, bash_cv_getcwd_calls_popen=yes,
|
||||
AC_MSG_ERROR(cannot check whether getcwd calls popen if cross compiling))])
|
||||
[AC_MSG_ERROR(cannot check whether getcwd calls popen if cross compiling -- defaulting to no)
|
||||
bash_cv_getcwd_calls_popen=no]
|
||||
)])
|
||||
AC_MSG_RESULT($bash_cv_getcwd_calls_popen)
|
||||
if test $bash_cv_getcwd_calls_popen = yes; then
|
||||
AC_DEFINE(GETCWD_BROKEN)
|
||||
|
|
@ -690,7 +814,9 @@ main()
|
|||
exit(nsigint != 2);
|
||||
}
|
||||
], bash_cv_must_reinstall_sighandlers=no, bash_cv_must_reinstall_sighandlers=yes,
|
||||
AC_MSG_ERROR(cannot check signal handling if cross compiling))])
|
||||
[AC_MSG_ERROR(cannot check signal handling if cross compiling -- defaulting to no)
|
||||
bash_cv_must_reinstall_sighandlers=no]
|
||||
)])
|
||||
AC_MSG_RESULT($bash_cv_must_reinstall_sighandlers)
|
||||
if test $bash_cv_must_reinstall_sighandlers = yes; then
|
||||
AC_DEFINE(MUST_REINSTALL_SIGHANDLERS)
|
||||
|
|
@ -756,9 +882,10 @@ exit(1);
|
|||
#endif
|
||||
|
||||
exit(0);
|
||||
}],bash_cv_job_control_missing=present, bash_cv_job_control_missing=missing,
|
||||
AC_MSG_ERROR(cannot check job control if cross-compiling))
|
||||
])
|
||||
}], bash_cv_job_control_missing=present, bash_cv_job_control_missing=missing,
|
||||
[AC_MSG_ERROR(cannot check job control if cross-compiling -- defaulting to missing)
|
||||
bash_cv_job_control_missing=missing]
|
||||
)])
|
||||
AC_MSG_RESULT($bash_cv_job_control_missing)
|
||||
if test $bash_cv_job_control_missing = missing; then
|
||||
AC_DEFINE(JOB_CONTROL_MISSING)
|
||||
|
|
@ -800,9 +927,10 @@ if (fd == -1)
|
|||
close(fd);
|
||||
unlink ("/tmp/sh-np-autoconf");
|
||||
exit(0);
|
||||
}],bash_cv_sys_named_pipes=present, bash_cv_sys_named_pipes=missing,
|
||||
AC_MSG_ERROR(cannot check for named pipes if cross-compiling))
|
||||
])
|
||||
}], bash_cv_sys_named_pipes=present, bash_cv_sys_named_pipes=missing,
|
||||
[AC_MSG_ERROR(cannot check for named pipes if cross-compiling -- defaulting to missing)
|
||||
bash_cv_sys_named_pipes=missing]
|
||||
)])
|
||||
AC_MSG_RESULT($bash_cv_sys_named_pipes)
|
||||
if test $bash_cv_sys_named_pipes = missing; then
|
||||
AC_DEFINE(NAMED_PIPES_MISSING)
|
||||
|
|
@ -850,9 +978,10 @@ sigprocmask(SIG_BLOCK, &set, (sigset_t *)NULL);
|
|||
siglongjmp(xx, 10);
|
||||
exit(1);
|
||||
#endif
|
||||
}],bash_cv_func_sigsetjmp=present, bash_cv_func_sigsetjmp=missing,
|
||||
AC_MSG_ERROR(cannot check for sigsetjmp/siglongjmp if cross-compiling))
|
||||
])
|
||||
}], bash_cv_func_sigsetjmp=present, bash_cv_func_sigsetjmp=missing,
|
||||
[AC_MSG_ERROR(cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing)
|
||||
bash_cv_func_sigsetjmp=missing]
|
||||
)])
|
||||
AC_MSG_RESULT($bash_cv_func_sigsetjmp)
|
||||
if test $bash_cv_func_sigsetjmp = present; then
|
||||
AC_DEFINE(HAVE_POSIX_SIGSETJMP)
|
||||
|
|
@ -872,14 +1001,23 @@ fi
|
|||
])
|
||||
|
||||
AC_DEFUN(BASH_STRUCT_WINSIZE,
|
||||
[AC_MSG_CHECKING(for struct winsize in sys/ioctl.h)
|
||||
AC_CACHE_VAL(bash_cv_struct_winsize_in_ioctl,
|
||||
[AC_MSG_CHECKING(for struct winsize in sys/ioctl.h and termios.h)
|
||||
AC_CACHE_VAL(bash_cv_struct_winsize_header,
|
||||
[AC_TRY_COMPILE([#include <sys/types.h>
|
||||
#include <sys/ioctl.h>], [struct winsize x;],
|
||||
bash_cv_struct_winsize_in_ioctl=yes,bash_cv_struct_winsize_in_ioctl=no)])
|
||||
AC_MSG_RESULT($bash_cv_struct_winsize_in_ioctl)
|
||||
if test $bash_cv_struct_winsize_in_ioctl = yes; then
|
||||
AC_DEFINE(STRUCT_WINSIZE_IN_SYS_IOCTL)
|
||||
bash_cv_struct_winsize_header=ioctl_h,
|
||||
[AC_TRY_COMPILE([#include <sys/types.h>
|
||||
#include <termios.h>], [struct winsize x;],
|
||||
bash_cv_struct_winsize_header=termios_h, bash_cv_struct_winsize_header=other)
|
||||
])])
|
||||
if test $bash_cv_struct_winsize_header = ioctl_h; then
|
||||
AC_MSG_RESULT(sys/ioctl.h)
|
||||
AC_DEFINE(STRUCT_WINSIZE_IN_SYS_IOCTL)
|
||||
elif test $bash_cv_struct_winsize_header = termios_h; then
|
||||
AC_MSG_RESULT(termios.h)
|
||||
AC_DEFINE(STRUCT_WINSIZE_IN_TERMIOS)
|
||||
else
|
||||
AC_MSG_RESULT(not found)
|
||||
fi
|
||||
])
|
||||
|
||||
|
|
@ -1051,16 +1189,16 @@ AC_CACHE_VAL(bash_cv_kernel_rlimit,
|
|||
int f;
|
||||
f = RLIMIT_DATA;
|
||||
], bash_cv_kernel_rlimit=no,
|
||||
[AC_TRY_COMPILE([
|
||||
#include <sys/types.h>
|
||||
#define _KERNEL
|
||||
#include <sys/resource.h>
|
||||
#undef _KERNEL
|
||||
],
|
||||
[
|
||||
[AC_TRY_COMPILE([
|
||||
#include <sys/types.h>
|
||||
#define _KERNEL
|
||||
#include <sys/resource.h>
|
||||
#undef _KERNEL
|
||||
],
|
||||
[
|
||||
int f;
|
||||
f = RLIMIT_DATA;
|
||||
], bash_cv_kernel_rlimit=yes, bash_cv_kernel_rlimit=no)]
|
||||
], bash_cv_kernel_rlimit=yes, bash_cv_kernel_rlimit=no)]
|
||||
)])
|
||||
AC_MSG_RESULT($bash_cv_kernel_rlimit)
|
||||
if test $bash_cv_kernel_rlimit = yes; then
|
||||
|
|
@ -1108,10 +1246,99 @@ char *v[];
|
|||
exit (r1 > 0 && r2 > 0);
|
||||
}
|
||||
], bash_cv_func_strcoll_broken=yes, bash_cv_func_strcoll_broken=no,
|
||||
AC_MSG_ERROR(cannot check strcoll if cross compiling))
|
||||
])
|
||||
[AC_MSG_ERROR(cannot check strcoll if cross compiling -- defaulting to no)
|
||||
bash_cv_func_strcoll_broken=no]
|
||||
)])
|
||||
AC_MSG_RESULT($bash_cv_func_strcoll_broken)
|
||||
if test $bash_cv_func_strcoll_broken = yes; then
|
||||
AC_DEFINE(STRCOLL_BROKEN)
|
||||
fi
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl If available, use support for large files unless the user specified
|
||||
dnl one of the CPPFLAGS, LDFLAGS, or LIBS variables (<eggert@twinsun.com>
|
||||
dnl via GNU patch 2.5)
|
||||
dnl
|
||||
AC_DEFUN(BASH_LARGE_FILE_SUPPORT,
|
||||
[AC_MSG_CHECKING(whether large file support needs explicit enabling)
|
||||
ac_getconfs=''
|
||||
ac_result=yes
|
||||
ac_set=''
|
||||
ac_shellvars='CPPFLAGS LDFLAGS LIBS'
|
||||
for ac_shellvar in $ac_shellvars; do
|
||||
case $ac_shellvar in
|
||||
CPPFLAGS) ac_lfsvar=LFS_CFLAGS ac_lfs64var=LFS64_CFLAGS ;;
|
||||
*) ac_lfsvar=LFS_$ac_shellvar ac_lfs64var=LFS64_$ac_shellvar ;;
|
||||
esac
|
||||
eval test '"${'$ac_shellvar'+set}"' = set && ac_set=$ac_shellvar
|
||||
(getconf $ac_lfsvar) >/dev/null 2>&1 || { ac_result=no; break; }
|
||||
ac_getconf=`getconf $ac_lfsvar`
|
||||
ac_getconf64=`getconf $ac_lfs64var`
|
||||
ac_getconfs=$ac_getconfs$ac_getconf\ $ac_getconf64
|
||||
eval ac_test_$ac_shellvar="\$ac_getconf\ \$ac_getconf64"
|
||||
done
|
||||
case "$ac_result$ac_getconfs" in
|
||||
yes) ac_result=no ;;
|
||||
esac
|
||||
case "$ac_result$ac_set" in
|
||||
yes?*) ac_result="yes, but $ac_set is already set, so use its settings"
|
||||
esac
|
||||
AC_MSG_RESULT($ac_result)
|
||||
case $ac_result in
|
||||
yes)
|
||||
for ac_shellvar in $ac_shellvars; do
|
||||
eval $ac_shellvar=\$ac_test_$ac_shellvar
|
||||
done ;;
|
||||
esac
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl AC_SYS_RESTARTABLE_SYSCALLS tests only for restarted system calls
|
||||
dnl after a signal handler has been installed with signal(). Since
|
||||
dnl Bash uses sigaction() if it is available, we need to check whether
|
||||
dnl or not a signal handler installed with sigaction and SA_RESTART
|
||||
dnl causes system calls to be restarted after the signal is caught
|
||||
dnl
|
||||
AC_DEFUN(BASH_SYS_RESTARTABLE_SYSCALLS,
|
||||
[AC_REQUIRE([BASH_SIGNAL_CHECK])
|
||||
AC_CACHE_CHECK(for restartable system calls with posix sigaction,
|
||||
bash_cv_sys_restartable_syscalls,
|
||||
[AC_TRY_RUN(
|
||||
[/* Exit 0 (true) if wait returns something other than -1,
|
||||
i.e. the pid of the child, which means that wait was restarted
|
||||
after getting the signal. */
|
||||
#include <sys/types.h>
|
||||
#include <signal.h>
|
||||
static int caught = 0;
|
||||
void ucatch (isig) int isig; { caught = 1; }
|
||||
main ()
|
||||
{
|
||||
#if !defined (_POSIX_VERSION) || !defined (HAVE_POSIX_SIGNALS)
|
||||
exit (1);
|
||||
#else
|
||||
struct sigaction act, oact;
|
||||
int i, status;
|
||||
|
||||
act.sa_handler = ucatch;
|
||||
/* Might want to add SA_RESTART here, but bash's set_signal_handler
|
||||
does not. */
|
||||
act.sa_flags = 0;
|
||||
sigemptyset(&act.sa_mask);
|
||||
sigemptyset(&oact.sa_mask);
|
||||
i = fork ();
|
||||
/* A possible race condition here, but in practice it never happens. */
|
||||
if (i == 0) { sleep (3); kill (getppid (), SIGINT); sleep (3); exit (0); }
|
||||
sigaction(SIGINT, &act, &oact);
|
||||
status = wait(&i);
|
||||
if (status == -1) wait(&i);
|
||||
exit (status == -1);
|
||||
#endif
|
||||
}
|
||||
], bash_cv_sys_restartable_syscalls=yes, bash_cv_sys_restartable_syscalls=no,
|
||||
AC_MSG_ERROR(cannot check restartable syscalls if cross compiling))
|
||||
])
|
||||
if test $bash_cv_sys_restartable_syscalls = yes; then
|
||||
AC_DEFINE(HAVE_RESTARTABLE_SYSCALLS)
|
||||
fi
|
||||
])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue