[OE-core] [PATCH v2] readline: add missing macros in acinclude.m4
Saul Wold
sgw at linux.intel.com
Thu Jul 26 19:06:43 UTC 2012
On 07/25/2012 01:21 AM, Fahad Usman wrote:
> From: Fahad Usman <fahad_usman at mentor.com>
>
> some bash macros are missing from acinclude.m4 which are added up-stream. This
> wasn't actually breaking anything but but it was causing the configure script
> to not run all the tests it's intended to run.
>
> move the acinclude.m4 from "files" folder to version specific folders so that
> readline-5.2 continue to use the older acinclude.m4 only readline-6.2 use the
> updated one
>
> Signed-off-by: Fahad Usman <fahad_usman at mentor.com>
> ---
> meta/recipes-core/readline/files/acinclude.m4 | 1815 -------------------
> .../readline/readline-5.2/acinclude.m4 | 1815 +++++++++++++++++++
> .../readline/readline-6.2/acinclude.m4 | 1871 ++++++++++++++++++++
> meta/recipes-core/readline/readline_6.2.bb | 2 +-
> 4 files changed, 3687 insertions(+), 1816 deletions(-)
> delete mode 100644 meta/recipes-core/readline/files/acinclude.m4
> create mode 100644 meta/recipes-core/readline/readline-5.2/acinclude.m4
> create mode 100644 meta/recipes-core/readline/readline-6.2/acinclude.m4
>
Merged into OE-Core
Thanks
Sau!
> diff --git a/meta/recipes-core/readline/files/acinclude.m4 b/meta/recipes-core/readline/files/acinclude.m4
> deleted file mode 100644
> index 8a45f99..0000000
> --- a/meta/recipes-core/readline/files/acinclude.m4
> +++ /dev/null
> @@ -1,1815 +0,0 @@
> -dnl
> -dnl Bash specific tests
> -dnl
> -dnl Some derived from PDKSH 5.1.3 autoconf tests
> -dnl
> -
> -AC_DEFUN([BASH_C_LONG_LONG],
> -[AC_CACHE_CHECK(for long long, ac_cv_c_long_long,
> -[if test "$GCC" = yes; then
> - ac_cv_c_long_long=yes
> -else
> -AC_TRY_RUN([
> -int
> -main()
> -{
> -long long foo = 0;
> -exit(sizeof(long long) < sizeof(long));
> -}
> -], ac_cv_c_long_long=yes, ac_cv_c_long_long=no)
> -fi])
> -if test $ac_cv_c_long_long = yes; then
> - AC_DEFINE(HAVE_LONG_LONG, 1, [Define if the `long long' type works.])
> -fi
> -])
> -
> -dnl
> -dnl This is very similar to AC_C_LONG_DOUBLE, with the fix for IRIX
> -dnl (< changed to <=) added.
> -dnl
> -AC_DEFUN([BASH_C_LONG_DOUBLE],
> -[AC_CACHE_CHECK(for long double, ac_cv_c_long_double,
> -[if test "$GCC" = yes; then
> - ac_cv_c_long_double=yes
> -else
> -AC_TRY_RUN([
> -int
> -main()
> -{
> - /* The Stardent Vistra knows sizeof(long double), but does not
> - support it. */
> - long double foo = 0.0;
> - /* On Ultrix 4.3 cc, long double is 4 and double is 8. */
> - /* On IRIX 5.3, the compiler converts long double to double with a warning,
> - but compiles this successfully. */
> - exit(sizeof(long double) <= sizeof(double));
> -}
> -], ac_cv_c_long_double=yes, ac_cv_c_long_double=no)
> -fi])
> -if test $ac_cv_c_long_double = yes; then
> - AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if the `long double' type works.])
> -fi
> -])
> -
> -dnl
> -dnl Check for <inttypes.h>. This is separated out so that it can be
> -dnl AC_REQUIREd.
> -dnl
> -dnl BASH_HEADER_INTTYPES
> -AC_DEFUN([BASH_HEADER_INTTYPES],
> -[
> - AC_CHECK_HEADERS(inttypes.h)
> -])
> -
> -dnl
> -dnl check for typedef'd symbols in header files, but allow the caller to
> -dnl specify the include files to be checked in addition to the default
> -dnl
> -dnl BASH_CHECK_TYPE(TYPE, HEADERS, DEFAULT[, VALUE-IF-FOUND])
> -AC_DEFUN([BASH_CHECK_TYPE],
> -[
> -AC_REQUIRE([AC_HEADER_STDC])dnl
> -AC_REQUIRE([BASH_HEADER_INTTYPES])
> -AC_MSG_CHECKING(for $1)
> -AC_CACHE_VAL(bash_cv_type_$1,
> -[AC_EGREP_CPP($1, [#include <sys/types.h>
> -#if STDC_HEADERS
> -#include <stdlib.h>
> -#include <stddef.h>
> -#endif
> -#if HAVE_INTTYPES_H
> -#include <inttypes.h>
> -#endif
> -$2
> -], bash_cv_type_$1=yes, bash_cv_type_$1=no)])
> -AC_MSG_RESULT($bash_cv_type_$1)
> -ifelse($#, 4, [if test $bash_cv_type_$1 = yes; then
> - AC_DEFINE($4)
> - fi])
> -if test $bash_cv_type_$1 = no; then
> - AC_DEFINE_UNQUOTED($1, $3)
> -fi
> -])
> -
> -dnl
> -dnl BASH_CHECK_DECL(FUNC)
> -dnl
> -dnl Check for a declaration of FUNC in stdlib.h and inttypes.h like
> -dnl AC_CHECK_DECL
> -dnl
> -AC_DEFUN([BASH_CHECK_DECL],
> -[
> -AC_REQUIRE([AC_HEADER_STDC])
> -AC_REQUIRE([BASH_HEADER_INTTYPES])
> -AC_CACHE_CHECK([for declaration of $1], bash_cv_decl_$1,
> -[AC_TRY_LINK(
> -[
> -#if STDC_HEADERS
> -# include <stdlib.h>
> -#endif
> -#if HAVE_INTTYPES_H
> -# include <inttypes.h>
> -#endif
> -],
> -[return !$1;],
> -bash_cv_decl_$1=yes, bash_cv_decl_$1=no)])
> -bash_tr_func=HAVE_DECL_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
> -if test $bash_cv_decl_$1 = yes; then
> - AC_DEFINE_UNQUOTED($bash_tr_func, 1)
> -else
> - AC_DEFINE_UNQUOTED($bash_tr_func, 0)
> -fi
> -])
> -
> -AC_DEFUN([BASH_DECL_PRINTF],
> -[AC_MSG_CHECKING(for declaration of printf in <stdio.h>)
> -AC_CACHE_VAL(bash_cv_printf_declared,
> -[AC_TRY_RUN([
> -#include <stdio.h>
> -#ifdef __STDC__
> -typedef int (*_bashfunc)(const char *, ...);
> -#else
> -typedef int (*_bashfunc)();
> -#endif
> -main()
> -{
> -_bashfunc pf;
> -pf = (_bashfunc) printf;
> -exit(pf == 0);
> -}
> -], bash_cv_printf_declared=yes, bash_cv_printf_declared=no,
> - [AC_MSG_WARN(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)
> -fi
> -])
> -
> -AC_DEFUN([BASH_DECL_SBRK],
> -[AC_MSG_CHECKING(for declaration of sbrk in <unistd.h>)
> -AC_CACHE_VAL(bash_cv_sbrk_declared,
> -[AC_EGREP_HEADER(sbrk, unistd.h,
> - bash_cv_sbrk_declared=yes, bash_cv_sbrk_declared=no)])
> -AC_MSG_RESULT($bash_cv_sbrk_declared)
> -if test $bash_cv_sbrk_declared = yes; then
> -AC_DEFINE(SBRK_DECLARED)
> -fi
> -])
> -
> -dnl
> -dnl Check for sys_siglist[] or _sys_siglist[]
> -dnl
> -AC_DEFUN([BASH_DECL_UNDER_SYS_SIGLIST],
> -[AC_MSG_CHECKING([for _sys_siglist in signal.h or unistd.h])
> -AC_CACHE_VAL(bash_cv_decl_under_sys_siglist,
> -[AC_TRY_COMPILE([
> -#include <sys/types.h>
> -#include <signal.h>
> -#ifdef HAVE_UNISTD_H
> -#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_WARN(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)
> -fi
> -])
> -
> -AC_DEFUN([BASH_UNDER_SYS_SIGLIST],
> -[AC_REQUIRE([BASH_DECL_UNDER_SYS_SIGLIST])
> -AC_MSG_CHECKING([for _sys_siglist in system C library])
> -AC_CACHE_VAL(bash_cv_under_sys_siglist,
> -[AC_TRY_RUN([
> -#include <sys/types.h>
> -#include <signal.h>
> -#ifdef HAVE_UNISTD_H
> -#include <unistd.h>
> -#endif
> -#ifndef UNDER_SYS_SIGLIST_DECLARED
> -extern char *_sys_siglist[];
> -#endif
> -main()
> -{
> -char *msg = (char *)_sys_siglist[2];
> -exit(msg == 0);
> -}],
> - bash_cv_under_sys_siglist=yes, bash_cv_under_sys_siglist=no,
> - [AC_MSG_WARN(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)
> -fi
> -])
> -
> -AC_DEFUN([BASH_SYS_SIGLIST],
> -[
> -AC_CHECK_DECLS([sys_siglist])
> -AC_MSG_CHECKING([for sys_siglist in system C library])
> -AC_CACHE_VAL(bash_cv_sys_siglist,
> -[AC_TRY_RUN([
> -#include <sys/types.h>
> -#include <signal.h>
> -#ifdef HAVE_UNISTD_H
> -#include <unistd.h>
> -#endif
> -#ifndef HAVE_DECL_SYS_SIGLIST
> -extern char *sys_siglist[];
> -#endif
> -main()
> -{
> -char *msg = sys_siglist[2];
> -exit(msg == 0);
> -}],
> - bash_cv_sys_siglist=yes, bash_cv_sys_siglist=no,
> - [AC_MSG_WARN(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)
> -fi
> -])
> -
> -dnl Check for the various permutations of sys_siglist and make sure we
> -dnl compile in siglist.o if they're not defined
> -AC_DEFUN([BASH_CHECK_SYS_SIGLIST], [
> -AC_REQUIRE([BASH_SYS_SIGLIST])
> -AC_REQUIRE([BASH_DECL_UNDER_SYS_SIGLIST])
> -AC_REQUIRE([BASH_FUNC_STRSIGNAL])
> -if test "$bash_cv_sys_siglist" = no && test "$bash_cv_under_sys_siglist" = no && test "$bash_cv_have_strsignal" = no; then
> - SIGLIST_O=siglist.o
> -else
> - SIGLIST_O=
> -fi
> -AC_SUBST([SIGLIST_O])
> -])
> -
> -dnl Check for sys_errlist[] and sys_nerr, check for declaration
> -AC_DEFUN([BASH_SYS_ERRLIST],
> -[AC_MSG_CHECKING([for sys_errlist and sys_nerr])
> -AC_CACHE_VAL(bash_cv_sys_errlist,
> -[AC_TRY_LINK([#include <errno.h>],
> -[extern char *sys_errlist[];
> - extern int sys_nerr;
> - char *msg = sys_errlist[sys_nerr - 1];],
> - bash_cv_sys_errlist=yes, bash_cv_sys_errlist=no)])dnl
> -AC_MSG_RESULT($bash_cv_sys_errlist)
> -if test $bash_cv_sys_errlist = yes; then
> -AC_DEFINE(HAVE_SYS_ERRLIST)
> -fi
> -])
> -
> -dnl
> -dnl Check if dup2() does not clear the close on exec flag
> -dnl
> -AC_DEFUN([BASH_FUNC_DUP2_CLOEXEC_CHECK],
> -[AC_MSG_CHECKING(if dup2 fails to clear the close-on-exec flag)
> -AC_CACHE_VAL(bash_cv_dup2_broken,
> -[AC_TRY_RUN([
> -#include <sys/types.h>
> -#include <fcntl.h>
> -main()
> -{
> - int fd1, fd2, fl;
> - fd1 = open("/dev/null", 2);
> - if (fcntl(fd1, 2, 1) < 0)
> - exit(1);
> - fd2 = dup2(fd1, 1);
> - if (fd2 < 0)
> - exit(2);
> - fl = fcntl(fd2, 1, 0);
> - /* fl will be 1 if dup2 did not reset the close-on-exec flag. */
> - exit(fl != 1);
> -}
> -], bash_cv_dup2_broken=yes, bash_cv_dup2_broken=no,
> - [AC_MSG_WARN(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
> -AC_DEFINE(DUP2_BROKEN)
> -fi
> -])
> -
> -AC_DEFUN([BASH_FUNC_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>],
> -[char *s = (char *)strsignal(2);],
> - bash_cv_have_strsignal=yes, bash_cv_have_strsignal=no)])
> -AC_MSG_RESULT($bash_cv_have_strsignal)
> -if test $bash_cv_have_strsignal = yes; then
> -AC_DEFINE(HAVE_STRSIGNAL)
> -fi
> -])
> -
> -dnl Check to see if opendir will open non-directories (not a nice thing)
> -AC_DEFUN([BASH_FUNC_OPENDIR_CHECK],
> -[AC_REQUIRE([AC_HEADER_DIRENT])dnl
> -AC_MSG_CHECKING(if opendir() opens non-directories)
> -AC_CACHE_VAL(bash_cv_opendir_not_robust,
> -[AC_TRY_RUN([
> -#include <stdio.h>
> -#include <sys/types.h>
> -#include <fcntl.h>
> -#ifdef HAVE_UNISTD_H
> -# include <unistd.h>
> -#endif /* HAVE_UNISTD_H */
> -#if defined(HAVE_DIRENT_H)
> -# include <dirent.h>
> -#else
> -# define dirent direct
> -# ifdef HAVE_SYS_NDIR_H
> -# include <sys/ndir.h>
> -# endif /* SYSNDIR */
> -# ifdef HAVE_SYS_DIR_H
> -# include <sys/dir.h>
> -# endif /* SYSDIR */
> -# ifdef HAVE_NDIR_H
> -# include <ndir.h>
> -# endif
> -#endif /* HAVE_DIRENT_H */
> -main()
> -{
> -DIR *dir;
> -int fd, err;
> -err = mkdir("/tmp/bash-aclocal", 0700);
> -if (err < 0) {
> - perror("mkdir");
> - exit(1);
> -}
> -unlink("/tmp/bash-aclocal/not_a_directory");
> -fd = open("/tmp/bash-aclocal/not_a_directory", O_WRONLY|O_CREAT|O_EXCL, 0666);
> -write(fd, "\n", 1);
> -close(fd);
> -dir = opendir("/tmp/bash-aclocal/not_a_directory");
> -unlink("/tmp/bash-aclocal/not_a_directory");
> -rmdir("/tmp/bash-aclocal");
> -exit (dir == 0);
> -}], bash_cv_opendir_not_robust=yes,bash_cv_opendir_not_robust=no,
> - [AC_MSG_WARN(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)
> -fi
> -])
> -
> -dnl
> -AH_TEMPLATE([VOID_SIGHANDLER], [Define if signal handlers return type void])
> -AC_DEFUN([BASH_TYPE_SIGHANDLER],
> -[AC_MSG_CHECKING([whether signal handlers are of type void])
> -AC_CACHE_VAL(bash_cv_void_sighandler,
> -[AC_TRY_COMPILE([#include <sys/types.h>
> -#include <signal.h>
> -#ifdef signal
> -#undef signal
> -#endif
> -#ifdef __cplusplus
> -extern "C"
> -#endif
> -void (*signal ()) ();],
> -[int i;], bash_cv_void_sighandler=yes, bash_cv_void_sighandler=no)])dnl
> -AC_MSG_RESULT($bash_cv_void_sighandler)
> -if test $bash_cv_void_sighandler = yes; then
> -AC_DEFINE(VOID_SIGHANDLER)
> -fi
> -])
> -
> -dnl
> -dnl A signed 16-bit integer quantity
> -dnl
> -AC_DEFUN([BASH_TYPE_BITS16_T],
> -[
> -if test "$ac_cv_sizeof_short" = 2; then
> - AC_CHECK_TYPE(bits16_t, short)
> -elif test "$ac_cv_sizeof_char" = 2; then
> - AC_CHECK_TYPE(bits16_t, char)
> -else
> - AC_CHECK_TYPE(bits16_t, short)
> -fi
> -])
> -
> -dnl
> -dnl An unsigned 16-bit integer quantity
> -dnl
> -AC_DEFUN([BASH_TYPE_U_BITS16_T],
> -[
> -if test "$ac_cv_sizeof_short" = 2; then
> - AC_CHECK_TYPE(u_bits16_t, unsigned short)
> -elif test "$ac_cv_sizeof_char" = 2; then
> - AC_CHECK_TYPE(u_bits16_t, unsigned char)
> -else
> - AC_CHECK_TYPE(u_bits16_t, unsigned short)
> -fi
> -])
> -
> -dnl
> -dnl A signed 32-bit integer quantity
> -dnl
> -AC_DEFUN([BASH_TYPE_BITS32_T],
> -[
> -if test "$ac_cv_sizeof_int" = 4; then
> - AC_CHECK_TYPE(bits32_t, int)
> -elif test "$ac_cv_sizeof_long" = 4; then
> - AC_CHECK_TYPE(bits32_t, long)
> -else
> - AC_CHECK_TYPE(bits32_t, int)
> -fi
> -])
> -
> -dnl
> -dnl An unsigned 32-bit integer quantity
> -dnl
> -AC_DEFUN([BASH_TYPE_U_BITS32_T],
> -[
> -if test "$ac_cv_sizeof_int" = 4; then
> - AC_CHECK_TYPE(u_bits32_t, unsigned int)
> -elif test "$ac_cv_sizeof_long" = 4; then
> - AC_CHECK_TYPE(u_bits32_t, unsigned long)
> -else
> - AC_CHECK_TYPE(u_bits32_t, unsigned int)
> -fi
> -])
> -
> -AC_DEFUN([BASH_TYPE_PTRDIFF_T],
> -[
> -if test "$ac_cv_sizeof_int" = "$ac_cv_sizeof_char_p"; then
> - AC_CHECK_TYPE(ptrdiff_t, int)
> -elif test "$ac_cv_sizeof_long" = "$ac_cv_sizeof_char_p"; then
> - AC_CHECK_TYPE(ptrdiff_t, long)
> -elif test "$ac_cv_type_long_long" = yes && test "$ac_cv_sizeof_long_long" = "$ac_cv_sizeof_char_p"; then
> - AC_CHECK_TYPE(ptrdiff_t, [long long])
> -else
> - AC_CHECK_TYPE(ptrdiff_t, int)
> -fi
> -])
> -
> -dnl
> -dnl A signed 64-bit quantity
> -dnl
> -AC_DEFUN([BASH_TYPE_BITS64_T],
> -[
> -if test "$ac_cv_sizeof_char_p" = 8; then
> - AC_CHECK_TYPE(bits64_t, char *)
> -elif test "$ac_cv_sizeof_double" = 8; then
> - AC_CHECK_TYPE(bits64_t, double)
> -elif test -n "$ac_cv_type_long_long" && test "$ac_cv_sizeof_long_long" = 8; then
> - AC_CHECK_TYPE(bits64_t, [long long])
> -elif test "$ac_cv_sizeof_long" = 8; then
> - AC_CHECK_TYPE(bits64_t, long)
> -else
> - AC_CHECK_TYPE(bits64_t, double)
> -fi
> -])
> -
> -AC_DEFUN([BASH_TYPE_LONG_LONG],
> -[
> -AC_CACHE_CHECK([for long long], bash_cv_type_long_long,
> -[AC_TRY_LINK([
> -long long ll = 1; int i = 63;],
> -[
> -long long llm = (long long) -1;
> -return ll << i | ll >> i | llm / ll | llm % ll;
> -], bash_cv_type_long_long='long long', bash_cv_type_long_long='long')])
> -if test "$bash_cv_type_long_long" = 'long long'; then
> - AC_DEFINE(HAVE_LONG_LONG, 1)
> -fi
> -])
> -
> -AC_DEFUN([BASH_TYPE_UNSIGNED_LONG_LONG],
> -[
> -AC_CACHE_CHECK([for unsigned long long], bash_cv_type_unsigned_long_long,
> -[AC_TRY_LINK([
> -unsigned long long ull = 1; int i = 63;],
> -[
> -unsigned long long ullmax = (unsigned long long) -1;
> -return ull << i | ull >> i | ullmax / ull | ullmax % ull;
> -], bash_cv_type_unsigned_long_long='unsigned long long',
> - bash_cv_type_unsigned_long_long='unsigned long')])
> -if test "$bash_cv_type_unsigned_long_long" = 'unsigned long long'; then
> - AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1)
> -fi
> -])
> -
> -dnl
> -dnl Type of struct rlimit fields: some systems (OSF/1, NetBSD, RISC/os 5.0)
> -dnl have a rlim_t, others (4.4BSD based systems) use quad_t, others use
> -dnl long and still others use int (HP-UX 9.01, SunOS 4.1.3). To simplify
> -dnl matters, this just checks for rlim_t, quad_t, or long.
> -dnl
> -AC_DEFUN([BASH_TYPE_RLIMIT],
> -[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>
> -#include <sys/resource.h>],
> -[rlim_t xxx;], bash_cv_type_rlimit=rlim_t,[
> -AC_TRY_RUN([
> -#include <sys/types.h>
> -#include <sys/time.h>
> -#include <sys/resource.h>
> -main()
> -{
> -#ifdef HAVE_QUAD_T
> - struct rlimit rl;
> - if (sizeof(rl.rlim_cur) == sizeof(quad_t))
> - exit(0);
> -#endif
> - exit(1);
> -}], bash_cv_type_rlimit=quad_t, bash_cv_type_rlimit=long,
> - [AC_MSG_WARN(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
> -AC_DEFINE(RLIMTYPE, quad_t)
> -elif test $bash_cv_type_rlimit = rlim_t; then
> -AC_DEFINE(RLIMTYPE, rlim_t)
> -fi
> -])
> -
> -AC_DEFUN([BASH_FUNC_LSTAT],
> -[dnl Cannot use AC_CHECK_FUNCS(lstat) because Linux defines lstat() as an
> -dnl inline function in <sys/stat.h>.
> -AC_CACHE_CHECK([for lstat], bash_cv_func_lstat,
> -[AC_TRY_LINK([
> -#include <sys/types.h>
> -#include <sys/stat.h>
> -],[ 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)
> -fi
> -])
> -
> -AC_DEFUN([BASH_FUNC_INET_ATON],
> -[
> -AC_CACHE_CHECK([for inet_aton], bash_cv_func_inet_aton,
> -[AC_TRY_LINK([
> -#include <sys/types.h>
> -#include <netinet/in.h>
> -#include <arpa/inet.h>
> -struct in_addr ap;], [ inet_aton("127.0.0.1", &ap); ],
> -bash_cv_func_inet_aton=yes, bash_cv_func_inet_aton=no)])
> -if test $bash_cv_func_inet_aton = yes; then
> - AC_DEFINE(HAVE_INET_ATON)
> -else
> - AC_LIBOBJ(inet_aton)
> -fi
> -])
> -
> -AC_DEFUN([BASH_FUNC_GETENV],
> -[AC_MSG_CHECKING(to see if getenv can be redefined)
> -AC_CACHE_VAL(bash_cv_getenv_redef,
> -[AC_TRY_RUN([
> -#ifdef HAVE_UNISTD_H
> -# include <unistd.h>
> -#endif
> -#ifndef __STDC__
> -# ifndef const
> -# define const
> -# endif
> -#endif
> -char *
> -getenv (name)
> -#if defined (__linux__) || defined (__bsdi__) || defined (convex)
> - const char *name;
> -#else
> - char const *name;
> -#endif /* !__linux__ && !__bsdi__ && !convex */
> -{
> -return "42";
> -}
> -main()
> -{
> -char *s;
> -/* The next allows this program to run, but does not allow bash to link
> - when it redefines getenv. I'm not really interested in figuring out
> - why not. */
> -#if defined (NeXT)
> -exit(1);
> -#endif
> -s = getenv("ABCDE");
> -exit(s == 0); /* force optimizer to leave getenv in */
> -}
> -], bash_cv_getenv_redef=yes, bash_cv_getenv_redef=no,
> - [AC_MSG_WARN(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)
> -fi
> -])
> -
> -# We should check for putenv before calling this
> -AC_DEFUN([BASH_FUNC_STD_PUTENV],
> -[
> -AC_REQUIRE([AC_HEADER_STDC])
> -AC_REQUIRE([AC_C_PROTOTYPES])
> -AC_CACHE_CHECK([for standard-conformant putenv declaration], bash_cv_std_putenv,
> -[AC_TRY_LINK([
> -#if STDC_HEADERS
> -#include <stdlib.h>
> -#include <stddef.h>
> -#endif
> -#ifndef __STDC__
> -# ifndef const
> -# define const
> -# endif
> -#endif
> -#ifdef PROTOTYPES
> -extern int putenv (char *);
> -#else
> -extern int putenv ();
> -#endif
> -],
> -[return (putenv == 0);],
> -bash_cv_std_putenv=yes, bash_cv_std_putenv=no
> -)])
> -if test $bash_cv_std_putenv = yes; then
> -AC_DEFINE(HAVE_STD_PUTENV)
> -fi
> -])
> -
> -# We should check for unsetenv before calling this
> -AC_DEFUN([BASH_FUNC_STD_UNSETENV],
> -[
> -AC_REQUIRE([AC_HEADER_STDC])
> -AC_REQUIRE([AC_C_PROTOTYPES])
> -AC_CACHE_CHECK([for standard-conformant unsetenv declaration], bash_cv_std_unsetenv,
> -[AC_TRY_LINK([
> -#if STDC_HEADERS
> -#include <stdlib.h>
> -#include <stddef.h>
> -#endif
> -#ifndef __STDC__
> -# ifndef const
> -# define const
> -# endif
> -#endif
> -#ifdef PROTOTYPES
> -extern int unsetenv (const char *);
> -#else
> -extern int unsetenv ();
> -#endif
> -],
> -[return (unsetenv == 0);],
> -bash_cv_std_unsetenv=yes, bash_cv_std_unsetenv=no
> -)])
> -if test $bash_cv_std_unsetenv = yes; then
> -AC_DEFINE(HAVE_STD_UNSETENV)
> -fi
> -])
> -
> -AC_DEFUN([BASH_FUNC_ULIMIT_MAXFDS],
> -[AC_MSG_CHECKING(whether ulimit can substitute for getdtablesize)
> -AC_CACHE_VAL(bash_cv_ulimit_maxfds,
> -[AC_TRY_RUN([
> -main()
> -{
> -long maxfds = ulimit(4, 0L);
> -exit (maxfds == -1L);
> -}
> -], bash_cv_ulimit_maxfds=yes, bash_cv_ulimit_maxfds=no,
> - [AC_MSG_WARN(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)
> -fi
> -])
> -
> -AC_DEFUN([BASH_FUNC_GETCWD],
> -[AC_MSG_CHECKING([if getcwd() calls popen()])
> -AC_CACHE_VAL(bash_cv_getcwd_calls_popen,
> -[AC_TRY_RUN([
> -#include <stdio.h>
> -#ifdef HAVE_UNISTD_H
> -#include <unistd.h>
> -#endif
> -
> -#ifndef __STDC__
> -#ifndef const
> -#define const
> -#endif
> -#endif
> -
> -int popen_called;
> -
> -FILE *
> -popen(command, type)
> - const char *command;
> - const char *type;
> -{
> - popen_called = 1;
> - return (FILE *)NULL;
> -}
> -
> -FILE *_popen(command, type)
> - const char *command;
> - const char *type;
> -{
> - return (popen (command, type));
> -}
> -
> -int
> -pclose(stream)
> -FILE *stream;
> -{
> - return 0;
> -}
> -
> -int
> -_pclose(stream)
> -FILE *stream;
> -{
> - return 0;
> -}
> -
> -main()
> -{
> - char lbuf[32];
> - popen_called = 0;
> - getcwd(lbuf, 32);
> - exit (popen_called);
> -}
> -], bash_cv_getcwd_calls_popen=no, bash_cv_getcwd_calls_popen=yes,
> - [AC_MSG_WARN(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)
> -AC_LIBOBJ(getcwd)
> -fi
> -])
> -
> -dnl
> -dnl This needs BASH_CHECK_SOCKLIB, but since that's not called on every
> -dnl system, we can't use AC_PREREQ
> -dnl
> -AC_DEFUN([BASH_FUNC_GETHOSTBYNAME],
> -[if test "X$bash_cv_have_gethostbyname" = "X"; then
> -_bash_needmsg=yes
> -else
> -AC_MSG_CHECKING(for gethostbyname in socket library)
> -_bash_needmsg=
> -fi
> -AC_CACHE_VAL(bash_cv_have_gethostbyname,
> -[AC_TRY_LINK([#include <netdb.h>],
> -[ struct hostent *hp;
> - hp = gethostbyname("localhost");
> -], bash_cv_have_gethostbyname=yes, bash_cv_have_gethostbyname=no)]
> -)
> -if test "X$_bash_needmsg" = Xyes; then
> - AC_MSG_CHECKING(for gethostbyname in socket library)
> -fi
> -AC_MSG_RESULT($bash_cv_have_gethostbyname)
> -if test "$bash_cv_have_gethostbyname" = yes; then
> -AC_DEFINE(HAVE_GETHOSTBYNAME)
> -fi
> -])
> -
> -AC_DEFUN([BASH_FUNC_FNMATCH_EXTMATCH],
> -[AC_MSG_CHECKING(if fnmatch does extended pattern matching with FNM_EXTMATCH)
> -AC_CACHE_VAL(bash_cv_fnm_extmatch,
> -[AC_TRY_RUN([
> -#include <fnmatch.h>
> -
> -main()
> -{
> -#ifdef FNM_EXTMATCH
> - exit (0);
> -#else
> - exit (1);
> -#endif
> -}
> -], bash_cv_fnm_extmatch=yes, bash_cv_fnm_extmatch=no,
> - [AC_MSG_WARN(cannot check FNM_EXTMATCH if cross compiling -- defaulting to no)
> - bash_cv_fnm_extmatch=no])
> -])
> -AC_MSG_RESULT($bash_cv_fnm_extmatch)
> -if test $bash_cv_fnm_extmatch = yes; then
> -AC_DEFINE(HAVE_LIBC_FNM_EXTMATCH)
> -fi
> -])
> -
> -AH_TEMPLATE([HAVE_POSIX_SIGSETJMP], [Define if we POSIX-style sigsetjmp/siglongjmp are available])
> -AC_DEFUN([BASH_FUNC_POSIX_SETJMP],
> -[AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
> -AC_MSG_CHECKING(for presence of POSIX-style sigsetjmp/siglongjmp)
> -AC_CACHE_VAL(bash_cv_func_sigsetjmp,
> -[AC_TRY_RUN([
> -#ifdef HAVE_UNISTD_H
> -#include <unistd.h>
> -#endif
> -#include <sys/types.h>
> -#include <signal.h>
> -#include <setjmp.h>
> -
> -main()
> -{
> -#if !defined (_POSIX_VERSION) || !defined (HAVE_POSIX_SIGNALS)
> -exit (1);
> -#else
> -
> -int code;
> -sigset_t set, oset;
> -sigjmp_buf xx;
> -
> -/* get the mask */
> -sigemptyset(&set);
> -sigemptyset(&oset);
> -sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &set);
> -sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &oset);
> -
> -/* save it */
> -code = sigsetjmp(xx, 1);
> -if (code)
> - exit(0); /* could get sigmask and compare to oset here. */
> -
> -/* change it */
> -sigaddset(&set, SIGINT);
> -sigprocmask(SIG_BLOCK, &set, (sigset_t *)NULL);
> -
> -/* and siglongjmp */
> -siglongjmp(xx, 10);
> -exit(1);
> -#endif
> -}], bash_cv_func_sigsetjmp=present, bash_cv_func_sigsetjmp=missing,
> - [AC_MSG_WARN(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)
> -fi
> -])
> -
> -AH_TEMPLATE([STRCOLL_BROKEN], [Define if strcoll is broken with respect to strcmp in the default locale.])
> -AC_DEFUN([BASH_FUNC_STRCOLL],
> -[
> -AC_MSG_CHECKING(whether or not strcoll and strcmp differ)
> -AC_CACHE_VAL(bash_cv_func_strcoll_broken,
> -[AC_TRY_RUN([
> -#include <stdio.h>
> -#if defined (HAVE_LOCALE_H)
> -#include <locale.h>
> -#endif
> -
> -main(c, v)
> -int c;
> -char *v[];
> -{
> - int r1, r2;
> - char *deflocale, *defcoll;
> -
> -#ifdef HAVE_SETLOCALE
> - deflocale = setlocale(LC_ALL, "");
> - defcoll = setlocale(LC_COLLATE, "");
> -#endif
> -
> -#ifdef HAVE_STRCOLL
> - /* These two values are taken from tests/glob-test. */
> - r1 = strcoll("abd", "aXd");
> -#else
> - r1 = 0;
> -#endif
> - r2 = strcmp("abd", "aXd");
> -
> - /* These two should both be greater than 0. It is permissible for
> - a system to return different values, as long as the sign is the
> - same. */
> -
> - /* Exit with 1 (failure) if these two values are both > 0, since
> - this tests whether strcoll(3) is broken with respect to strcmp(3)
> - in the default locale. */
> - exit (r1 > 0 && r2 > 0);
> -}
> -], bash_cv_func_strcoll_broken=yes, bash_cv_func_strcoll_broken=no,
> - [AC_MSG_WARN(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
> -])
> -
> -AC_DEFUN([BASH_FUNC_PRINTF_A_FORMAT],
> -[AC_MSG_CHECKING([for printf floating point output in hex notation])
> -AC_CACHE_VAL(bash_cv_printf_a_format,
> -[AC_TRY_RUN([
> -#include <stdio.h>
> -#include <string.h>
> -
> -int
> -main()
> -{
> - double y = 0.0;
> - char abuf[1024];
> -
> - sprintf(abuf, "%A", y);
> - exit(strchr(abuf, 'P') == (char *)0);
> -}
> -], bash_cv_printf_a_format=yes, bash_cv_printf_a_format=no,
> - [AC_MSG_WARN(cannot check printf if cross compiling -- defaulting to no)
> - bash_cv_printf_a_format=no]
> -)])
> -AC_MSG_RESULT($bash_cv_printf_a_format)
> -if test $bash_cv_printf_a_format = yes; then
> -AC_DEFINE(HAVE_PRINTF_A_FORMAT)
> -fi
> -])
> -
> -AC_DEFUN([BASH_STRUCT_TERMIOS_LDISC],
> -[
> -AC_CHECK_MEMBER(struct termios.c_line, AC_DEFINE(TERMIOS_LDISC), ,[
> -#include <sys/types.h>
> -#include <termios.h>
> -])
> -])
> -
> -AC_DEFUN([BASH_STRUCT_TERMIO_LDISC],
> -[
> -AC_CHECK_MEMBER(struct termio.c_line, AC_DEFINE(TERMIO_LDISC), ,[
> -#include <sys/types.h>
> -#include <termio.h>
> -])
> -])
> -
> -dnl
> -dnl Like AC_STRUCT_ST_BLOCKS, but doesn't muck with LIBOBJS
> -dnl
> -dnl sets bash_cv_struct_stat_st_blocks
> -dnl
> -dnl unused for now; we'll see how AC_CHECK_MEMBERS works
> -dnl
> -AC_DEFUN([BASH_STRUCT_ST_BLOCKS],
> -[
> -AC_MSG_CHECKING([for struct stat.st_blocks])
> -AC_CACHE_VAL(bash_cv_struct_stat_st_blocks,
> -[AC_TRY_COMPILE(
> -[
> -#include <sys/types.h>
> -#include <sys/stat.h>
> -],
> -[
> -main()
> -{
> -static struct stat a;
> -if (a.st_blocks) return 0;
> -return 0;
> -}
> -], bash_cv_struct_stat_st_blocks=yes, bash_cv_struct_stat_st_blocks=no)
> -])
> -AC_MSG_RESULT($bash_cv_struct_stat_st_blocks)
> -if test "$bash_cv_struct_stat_st_blocks" = "yes"; then
> -AC_DEFINE(HAVE_STRUCT_STAT_ST_BLOCKS)
> -fi
> -])
> -
> -AC_DEFUN([BASH_CHECK_LIB_TERMCAP],
> -[
> -if test "X$bash_cv_termcap_lib" = "X"; then
> -_bash_needmsg=yes
> -else
> -AC_MSG_CHECKING(which library has the termcap functions)
> -_bash_needmsg=
> -fi
> -AC_CACHE_VAL(bash_cv_termcap_lib,
> -[AC_CHECK_LIB(termcap, tgetent, bash_cv_termcap_lib=libtermcap,
> - [AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo,
> - [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses,
> - [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses,
> - bash_cv_termcap_lib=gnutermcap)])])])])
> -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 && test -z "$prefer_curses"; then
> -LDFLAGS="$LDFLAGS -L./lib/termcap"
> -TERMCAP_LIB="./lib/termcap/libtermcap.a"
> -TERMCAP_DEP="./lib/termcap/libtermcap.a"
> -elif test $bash_cv_termcap_lib = libtermcap && test -z "$prefer_curses"; then
> -TERMCAP_LIB=-ltermcap
> -TERMCAP_DEP=
> -elif test $bash_cv_termcap_lib = libtinfo; then
> -TERMCAP_LIB=-ltinfo
> -TERMCAP_DEP=
> -elif test $bash_cv_termcap_lib = libncurses; then
> -TERMCAP_LIB=-lncurses
> -TERMCAP_DEP=
> -else
> -TERMCAP_LIB=-lcurses
> -TERMCAP_DEP=
> -fi
> -])
> -
> -dnl
> -dnl Check for the presence of getpeername in libsocket.
> -dnl If libsocket is present, check for libnsl and add it to LIBS if
> -dnl it's there, since most systems with libsocket require linking
> -dnl with libnsl as well. This should only be called if getpeername
> -dnl was not found in libc.
> -dnl
> -dnl NOTE: IF WE FIND GETPEERNAME, WE ASSUME THAT WE HAVE BIND/CONNECT
> -dnl AS WELL
> -dnl
> -AC_DEFUN([BASH_CHECK_LIB_SOCKET],
> -[
> -if test "X$bash_cv_have_socklib" = "X"; then
> -_bash_needmsg=
> -else
> -AC_MSG_CHECKING(for socket library)
> -_bash_needmsg=yes
> -fi
> -AC_CACHE_VAL(bash_cv_have_socklib,
> -[AC_CHECK_LIB(socket, getpeername,
> - bash_cv_have_socklib=yes, bash_cv_have_socklib=no, -lnsl)])
> -if test "X$_bash_needmsg" = Xyes; then
> - AC_MSG_RESULT($bash_cv_have_socklib)
> - _bash_needmsg=
> -fi
> -if test $bash_cv_have_socklib = yes; then
> - # check for libnsl, add it to LIBS if present
> - if test "X$bash_cv_have_libnsl" = "X"; then
> - _bash_needmsg=
> - else
> - AC_MSG_CHECKING(for libnsl)
> - _bash_needmsg=yes
> - fi
> - AC_CACHE_VAL(bash_cv_have_libnsl,
> - [AC_CHECK_LIB(nsl, t_open,
> - bash_cv_have_libnsl=yes, bash_cv_have_libnsl=no)])
> - if test "X$_bash_needmsg" = Xyes; then
> - AC_MSG_RESULT($bash_cv_have_libnsl)
> - _bash_needmsg=
> - fi
> - if test $bash_cv_have_libnsl = yes; then
> - LIBS="-lsocket -lnsl $LIBS"
> - else
> - LIBS="-lsocket $LIBS"
> - fi
> - AC_DEFINE(HAVE_LIBSOCKET)
> - AC_DEFINE(HAVE_GETPEERNAME)
> -fi
> -])
> -
> -AH_TEMPLATE([STRUCT_DIRENT_HAS_D_INO], [Define if struct dirent has a d_ino member])
> -AC_DEFUN([BASH_STRUCT_DIRENT_D_INO],
> -[AC_REQUIRE([AC_HEADER_DIRENT])
> -AC_MSG_CHECKING(if struct dirent has a d_ino member)
> -AC_CACHE_VAL(bash_cv_dirent_has_dino,
> -[AC_TRY_COMPILE([
> -#include <stdio.h>
> -#include <sys/types.h>
> -#ifdef HAVE_UNISTD_H
> -# include <unistd.h>
> -#endif /* HAVE_UNISTD_H */
> -#if defined(HAVE_DIRENT_H)
> -# include <dirent.h>
> -#else
> -# define dirent direct
> -# ifdef HAVE_SYS_NDIR_H
> -# include <sys/ndir.h>
> -# endif /* SYSNDIR */
> -# ifdef HAVE_SYS_DIR_H
> -# include <sys/dir.h>
> -# endif /* SYSDIR */
> -# ifdef HAVE_NDIR_H
> -# include <ndir.h>
> -# endif
> -#endif /* HAVE_DIRENT_H */
> -],[
> -struct dirent d; int z; z = d.d_ino;
> -], bash_cv_dirent_has_dino=yes, bash_cv_dirent_has_dino=no)])
> -AC_MSG_RESULT($bash_cv_dirent_has_dino)
> -if test $bash_cv_dirent_has_dino = yes; then
> -AC_DEFINE(STRUCT_DIRENT_HAS_D_INO)
> -fi
> -])
> -
> -AH_TEMPLATE([STRUCT_DIRENT_HAS_D_FILENO], [Define if struct dirent has a d_fileno member])
> -AC_DEFUN([BASH_STRUCT_DIRENT_D_FILENO],
> -[AC_REQUIRE([AC_HEADER_DIRENT])
> -AC_MSG_CHECKING(if struct dirent has a d_fileno member)
> -AC_CACHE_VAL(bash_cv_dirent_has_d_fileno,
> -[AC_TRY_COMPILE([
> -#include <stdio.h>
> -#include <sys/types.h>
> -#ifdef HAVE_UNISTD_H
> -# include <unistd.h>
> -#endif /* HAVE_UNISTD_H */
> -#if defined(HAVE_DIRENT_H)
> -# include <dirent.h>
> -#else
> -# define dirent direct
> -# ifdef HAVE_SYS_NDIR_H
> -# include <sys/ndir.h>
> -# endif /* SYSNDIR */
> -# ifdef HAVE_SYS_DIR_H
> -# include <sys/dir.h>
> -# endif /* SYSDIR */
> -# ifdef HAVE_NDIR_H
> -# include <ndir.h>
> -# endif
> -#endif /* HAVE_DIRENT_H */
> -],[
> -struct dirent d; int z; z = d.d_fileno;
> -], bash_cv_dirent_has_d_fileno=yes, bash_cv_dirent_has_d_fileno=no)])
> -AC_MSG_RESULT($bash_cv_dirent_has_d_fileno)
> -if test $bash_cv_dirent_has_d_fileno = yes; then
> -AC_DEFINE(STRUCT_DIRENT_HAS_D_FILENO)
> -fi
> -])
> -
> -AC_DEFUN([BASH_STRUCT_TIMEVAL],
> -[AC_MSG_CHECKING(for struct timeval in sys/time.h and time.h)
> -AC_CACHE_VAL(bash_cv_struct_timeval,
> -[
> -AC_EGREP_HEADER(struct timeval, sys/time.h,
> - bash_cv_struct_timeval=yes,
> - AC_EGREP_HEADER(struct timeval, time.h,
> - bash_cv_struct_timeval=yes,
> - bash_cv_struct_timeval=no))
> -])
> -AC_MSG_RESULT($bash_cv_struct_timeval)
> -if test $bash_cv_struct_timeval = yes; then
> - AC_DEFINE(HAVE_TIMEVAL)
> -fi
> -])
> -
> -AH_TEMPLATE([STRUCT_WINSIZE_IN_SYS_IOCTL], [Define if struct winsize is in sys/ioctl.h])
> -AH_TEMPLATE([STRUCT_WINSIZE_IN_TERMIOS], [Define if struct winsize is in termios.h])
> -AC_DEFUN([BASH_STRUCT_WINSIZE],
> -[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_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
> -])
> -
> -dnl Check type of signal routines (posix, 4.2bsd, 4.1bsd or v7)
> -AH_TEMPLATE([HAVE_POSIX_SIGNALS], [Define if we have the POSIX signal routines])
> -AH_TEMPLATE([HAVE_BSD_SIGNALS], [Define if we have the BSD signal routines])
> -AH_TEMPLATE([HAVE_USG_SIGHOLD], [Define if we have the USG signal routines])
> -AC_DEFUN([BASH_SYS_SIGNAL_VINTAGE],
> -[AC_REQUIRE([AC_TYPE_SIGNAL])
> -AC_MSG_CHECKING(for type of signal functions)
> -AC_CACHE_VAL(bash_cv_signal_vintage,
> -[
> - AC_MSG_WARN([checking for posix...])
> - AC_TRY_LINK([#include <signal.h>],[
> - sigset_t ss;
> - struct sigaction sa;
> - sigemptyset(&ss); sigsuspend(&ss);
> - sigaction(SIGINT, &sa, (struct sigaction *) 0);
> - sigprocmask(SIG_BLOCK, &ss, (sigset_t *) 0);
> - ], bash_cv_signal_vintage="posix",
> - [
> - AC_MSG_WARN([checking for 4.2bsd...])
> - AC_TRY_LINK([#include <signal.h>], [
> - int mask = sigmask(SIGINT);
> - sigsetmask(mask); sigblock(mask); sigpause(mask);
> - ], bash_cv_signal_vintage="4.2bsd",
> - [
> - AC_MSG_WARN([checking for svr3...])
> - AC_TRY_LINK([
> - #include <signal.h>
> - RETSIGTYPE foo() { }], [
> - int mask = sigmask(SIGINT);
> - sigset(SIGINT, foo); sigrelse(SIGINT);
> - sighold(SIGINT); sigpause(SIGINT);
> - ], bash_cv_signal_vintage="svr3", bash_cv_signal_vintage="v7"
> - )]
> - )]
> -)
> -])
> -AC_MSG_RESULT($bash_cv_signal_vintage)
> -if test "$bash_cv_signal_vintage" = "posix"; then
> -AC_DEFINE(HAVE_POSIX_SIGNALS)
> -elif test "$bash_cv_signal_vintage" = "4.2bsd"; then
> -AC_DEFINE(HAVE_BSD_SIGNALS)
> -elif test "$bash_cv_signal_vintage" = "svr3"; then
> -AC_DEFINE(HAVE_USG_SIGHOLD)
> -fi
> -])
> -
> -dnl Check if the pgrp of setpgrp() can't be the pid of a zombie process.
> -AC_DEFUN([BASH_SYS_PGRP_SYNC],
> -[AC_REQUIRE([AC_FUNC_GETPGRP])
> -AC_MSG_CHECKING(whether pgrps need synchronization)
> -AC_CACHE_VAL(bash_cv_pgrp_pipe,
> -[AC_TRY_RUN([
> -#ifdef HAVE_UNISTD_H
> -# include <unistd.h>
> -#endif
> -main()
> -{
> -# ifdef GETPGRP_VOID
> -# define getpgID() getpgrp()
> -# else
> -# define getpgID() getpgrp(0)
> -# define setpgid(x,y) setpgrp(x,y)
> -# endif
> - int pid1, pid2, fds[2];
> - int status;
> - char ok;
> -
> - switch (pid1 = fork()) {
> - case -1:
> - exit(1);
> - case 0:
> - setpgid(0, getpid());
> - exit(0);
> - }
> - setpgid(pid1, pid1);
> -
> - sleep(2); /* let first child die */
> -
> - if (pipe(fds) < 0)
> - exit(2);
> -
> - switch (pid2 = fork()) {
> - case -1:
> - exit(3);
> - case 0:
> - setpgid(0, pid1);
> - ok = getpgID() == pid1;
> - write(fds[1], &ok, 1);
> - exit(0);
> - }
> - setpgid(pid2, pid1);
> -
> - close(fds[1]);
> - if (read(fds[0], &ok, 1) != 1)
> - exit(4);
> - wait(&status);
> - wait(&status);
> - exit(ok ? 0 : 5);
> -}
> -], bash_cv_pgrp_pipe=no,bash_cv_pgrp_pipe=yes,
> - [AC_MSG_WARN(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
> -AC_DEFINE(PGRP_PIPE)
> -fi
> -])
> -
> -AH_TEMPLATE([MUST_REINSTALL_SIGHANDLERS], [Define if signal handlers must be reinstalled when invoked.])
> -AC_DEFUN([BASH_SYS_REINSTALL_SIGHANDLERS],
> -[AC_REQUIRE([AC_TYPE_SIGNAL])
> -AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
> -AC_MSG_CHECKING([if signal handlers must be reinstalled when invoked])
> -AC_CACHE_VAL(bash_cv_must_reinstall_sighandlers,
> -[AC_TRY_RUN([
> -#include <signal.h>
> -#ifdef HAVE_UNISTD_H
> -#include <unistd.h>
> -#endif
> -
> -typedef RETSIGTYPE sigfunc();
> -
> -int nsigint;
> -
> -#ifdef HAVE_POSIX_SIGNALS
> -sigfunc *
> -set_signal_handler(sig, handler)
> - int sig;
> - sigfunc *handler;
> -{
> - struct sigaction act, oact;
> - act.sa_handler = handler;
> - act.sa_flags = 0;
> - sigemptyset (&act.sa_mask);
> - sigemptyset (&oact.sa_mask);
> - sigaction (sig, &act, &oact);
> - return (oact.sa_handler);
> -}
> -#else
> -#define set_signal_handler(s, h) signal(s, h)
> -#endif
> -
> -RETSIGTYPE
> -sigint(s)
> -int s;
> -{
> - nsigint++;
> -}
> -
> -main()
> -{
> - nsigint = 0;
> - set_signal_handler(SIGINT, sigint);
> - kill((int)getpid(), SIGINT);
> - kill((int)getpid(), SIGINT);
> - exit(nsigint != 2);
> -}
> -], bash_cv_must_reinstall_sighandlers=no, bash_cv_must_reinstall_sighandlers=yes,
> - [AC_MSG_WARN(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)
> -fi
> -])
> -
> -dnl check that some necessary job control definitions are present
> -AC_DEFUN([BASH_SYS_JOB_CONTROL_MISSING],
> -[AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
> -AC_MSG_CHECKING(for presence of necessary job control definitions)
> -AC_CACHE_VAL(bash_cv_job_control_missing,
> -[AC_TRY_RUN([
> -#include <sys/types.h>
> -#ifdef HAVE_SYS_WAIT_H
> -#include <sys/wait.h>
> -#endif
> -#ifdef HAVE_UNISTD_H
> -#include <unistd.h>
> -#endif
> -#include <signal.h>
> -
> -/* Add more tests in here as appropriate. */
> -main()
> -{
> -/* signal type */
> -#if !defined (HAVE_POSIX_SIGNALS) && !defined (HAVE_BSD_SIGNALS)
> -exit(1);
> -#endif
> -
> -/* signals and tty control. */
> -#if !defined (SIGTSTP) || !defined (SIGSTOP) || !defined (SIGCONT)
> -exit (1);
> -#endif
> -
> -/* process control */
> -#if !defined (WNOHANG) || !defined (WUNTRACED)
> -exit(1);
> -#endif
> -
> -/* Posix systems have tcgetpgrp and waitpid. */
> -#if defined (_POSIX_VERSION) && !defined (HAVE_TCGETPGRP)
> -exit(1);
> -#endif
> -
> -#if defined (_POSIX_VERSION) && !defined (HAVE_WAITPID)
> -exit(1);
> -#endif
> -
> -/* Other systems have TIOCSPGRP/TIOCGPRGP and wait3. */
> -#if !defined (_POSIX_VERSION) && !defined (HAVE_WAIT3)
> -exit(1);
> -#endif
> -
> -exit(0);
> -}], bash_cv_job_control_missing=present, bash_cv_job_control_missing=missing,
> - [AC_MSG_WARN(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)
> -fi
> -])
> -
> -dnl check whether named pipes are present
> -dnl this requires a previous check for mkfifo, but that is awkward to specify
> -AC_DEFUN([BASH_SYS_NAMED_PIPES],
> -[AC_MSG_CHECKING(for presence of named pipes)
> -AC_CACHE_VAL(bash_cv_sys_named_pipes,
> -[AC_TRY_RUN([
> -#include <sys/types.h>
> -#include <sys/stat.h>
> -#ifdef HAVE_UNISTD_H
> -#include <unistd.h>
> -#endif
> -
> -/* Add more tests in here as appropriate. */
> -main()
> -{
> -int fd, err;
> -
> -#if defined (HAVE_MKFIFO)
> -exit (0);
> -#endif
> -
> -#if !defined (S_IFIFO) && (defined (_POSIX_VERSION) && !defined (S_ISFIFO))
> -exit (1);
> -#endif
> -
> -#if defined (NeXT)
> -exit (1);
> -#endif
> -err = mkdir("/tmp/bash-aclocal", 0700);
> -if (err < 0) {
> - perror ("mkdir");
> - exit(1);
> -}
> -fd = mknod ("/tmp/bash-aclocal/sh-np-autoconf", 0666 | S_IFIFO, 0);
> -if (fd == -1) {
> - rmdir ("/tmp/bash-aclocal");
> - exit (1);
> -}
> -close(fd);
> -unlink ("/tmp/bash-aclocal/sh-np-autoconf");
> -rmdir ("/tmp/bash-aclocal");
> -exit(0);
> -}], bash_cv_sys_named_pipes=present, bash_cv_sys_named_pipes=missing,
> - [AC_MSG_WARN(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)
> -fi
> -])
> -
> -AC_DEFUN([BASH_SYS_DEFAULT_MAIL_DIR],
> -[AC_MSG_CHECKING(for default mail directory)
> -AC_CACHE_VAL(bash_cv_mail_dir,
> -[if test -d /var/mail; then
> - bash_cv_mail_dir=/var/mail
> - elif test -d /var/spool/mail; then
> - bash_cv_mail_dir=/var/spool/mail
> - elif test -d /usr/mail; then
> - bash_cv_mail_dir=/usr/mail
> - elif test -d /usr/spool/mail; then
> - bash_cv_mail_dir=/usr/spool/mail
> - else
> - bash_cv_mail_dir=unknown
> - fi
> -])
> -AC_MSG_RESULT($bash_cv_mail_dir)
> -AC_DEFINE_UNQUOTED(DEFAULT_MAIL_DIRECTORY, "$bash_cv_mail_dir")
> -])
> -
> -AC_DEFUN([BASH_HAVE_TIOCGWINSZ],
> -[AC_MSG_CHECKING(for TIOCGWINSZ in sys/ioctl.h)
> -AC_CACHE_VAL(bash_cv_tiocgwinsz_in_ioctl,
> -[AC_TRY_COMPILE([#include <sys/types.h>
> -#include <sys/ioctl.h>], [int x = TIOCGWINSZ;],
> - bash_cv_tiocgwinsz_in_ioctl=yes,bash_cv_tiocgwinsz_in_ioctl=no)])
> -AC_MSG_RESULT($bash_cv_tiocgwinsz_in_ioctl)
> -if test $bash_cv_tiocgwinsz_in_ioctl = yes; then
> -AC_DEFINE(GWINSZ_IN_SYS_IOCTL)
> -fi
> -])
> -
> -AH_TEMPLATE([TIOCSTAT_IN_SYS_IOCTL], [Define if TIOCSTAT is in sys/ioctl.h])
> -AC_DEFUN([BASH_HAVE_TIOCSTAT],
> -[AC_MSG_CHECKING(for TIOCSTAT in sys/ioctl.h)
> -AC_CACHE_VAL(bash_cv_tiocstat_in_ioctl,
> -[AC_TRY_COMPILE([#include <sys/types.h>
> -#include <sys/ioctl.h>], [int x = TIOCSTAT;],
> - bash_cv_tiocstat_in_ioctl=yes,bash_cv_tiocstat_in_ioctl=no)])
> -AC_MSG_RESULT($bash_cv_tiocstat_in_ioctl)
> -if test $bash_cv_tiocstat_in_ioctl = yes; then
> -AC_DEFINE(TIOCSTAT_IN_SYS_IOCTL)
> -fi
> -])
> -
> -AH_TEMPLATE([FIONREAD_IN_SYS_IOCTL], [Define if FIONREAD is in sys/ioctl.h])
> -AC_DEFUN([BASH_HAVE_FIONREAD],
> -[AC_MSG_CHECKING(for FIONREAD in sys/ioctl.h)
> -AC_CACHE_VAL(bash_cv_fionread_in_ioctl,
> -[AC_TRY_COMPILE([#include <sys/types.h>
> -#include <sys/ioctl.h>], [int x = FIONREAD;],
> - bash_cv_fionread_in_ioctl=yes,bash_cv_fionread_in_ioctl=no)])
> -AC_MSG_RESULT($bash_cv_fionread_in_ioctl)
> -if test $bash_cv_fionread_in_ioctl = yes; then
> -AC_DEFINE(FIONREAD_IN_SYS_IOCTL)
> -fi
> -])
> -
> -dnl
> -dnl See if speed_t is declared in <sys/types.h>. Some versions of linux
> -dnl require a definition of speed_t each time <termcap.h> is included,
> -dnl but you can only get speed_t if you include <termios.h> (on some
> -dnl versions) or <sys/types.h> (on others).
> -dnl
> -AH_TEMPLATE([SPEED_T_IN_SYS_TYPES], [Define if speed_t is in sys/types.h])
> -AC_DEFUN([BASH_CHECK_SPEED_T],
> -[AC_MSG_CHECKING(for speed_t in sys/types.h)
> -AC_CACHE_VAL(bash_cv_speed_t_in_sys_types,
> -[AC_TRY_COMPILE([#include <sys/types.h>], [speed_t x;],
> - bash_cv_speed_t_in_sys_types=yes,bash_cv_speed_t_in_sys_types=no)])
> -AC_MSG_RESULT($bash_cv_speed_t_in_sys_types)
> -if test $bash_cv_speed_t_in_sys_types = yes; then
> -AC_DEFINE(SPEED_T_IN_SYS_TYPES)
> -fi
> -])
> -
> -AH_TEMPLATE([HAVE_GETPW_DECLS], [Define if getpw functions are declared in pwd.h])
> -AC_DEFUN([BASH_CHECK_GETPW_FUNCS],
> -[AC_MSG_CHECKING(whether getpw functions are declared in pwd.h)
> -AC_CACHE_VAL(bash_cv_getpw_declared,
> -[AC_EGREP_CPP(getpwuid,
> -[
> -#include <sys/types.h>
> -#ifdef HAVE_UNISTD_H
> -# include <unistd.h>
> -#endif
> -#include <pwd.h>
> -],
> -bash_cv_getpw_declared=yes,bash_cv_getpw_declared=no)])
> -AC_MSG_RESULT($bash_cv_getpw_declared)
> -if test $bash_cv_getpw_declared = yes; then
> -AC_DEFINE(HAVE_GETPW_DECLS)
> -fi
> -])
> -
> -AC_DEFUN([BASH_CHECK_DEV_FD],
> -[AC_MSG_CHECKING(whether /dev/fd is available)
> -AC_CACHE_VAL(bash_cv_dev_fd,
> -[if test -d /dev/fd && test -r /dev/fd/0; then
> - bash_cv_dev_fd=standard
> - elif test -d /proc/self/fd && test -r /proc/self/fd/0; then
> - bash_cv_dev_fd=whacky
> - else
> - bash_cv_dev_fd=absent
> - fi
> -])
> -AC_MSG_RESULT($bash_cv_dev_fd)
> -if test $bash_cv_dev_fd = "standard"; then
> - AC_DEFINE(HAVE_DEV_FD)
> - AC_DEFINE(DEV_FD_PREFIX, "/dev/fd/")
> -elif test $bash_cv_dev_fd = "whacky"; then
> - AC_DEFINE(HAVE_DEV_FD)
> - AC_DEFINE(DEV_FD_PREFIX, "/proc/self/fd/")
> -fi
> -])
> -
> -AC_DEFUN([BASH_CHECK_DEV_STDIN],
> -[AC_MSG_CHECKING(whether /dev/stdin stdout stderr are available)
> -AC_CACHE_VAL(bash_cv_dev_stdin,
> -[if test -d /dev/fd && test -r /dev/stdin; then
> - bash_cv_dev_stdin=present
> - elif test -d /proc/self/fd && test -r /dev/stdin; then
> - bash_cv_dev_stdin=present
> - else
> - bash_cv_dev_stdin=absent
> - fi
> -])
> -AC_MSG_RESULT($bash_cv_dev_stdin)
> -if test $bash_cv_dev_stdin = "present"; then
> - AC_DEFINE(HAVE_DEV_STDIN)
> -fi
> -])
> -
> -dnl
> -dnl Check if HPUX needs _KERNEL defined for RLIMIT_* definitions
> -dnl
> -AC_DEFUN([BASH_CHECK_KERNEL_RLIMIT],
> -[AC_MSG_CHECKING([whether $host_os needs _KERNEL for RLIMIT defines])
> -AC_CACHE_VAL(bash_cv_kernel_rlimit,
> -[AC_TRY_COMPILE([
> -#include <sys/types.h>
> -#include <sys/resource.h>
> -],
> -[
> - 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
> -],
> -[
> - int f;
> - f = RLIMIT_DATA;
> -], 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
> -AC_DEFINE(RLIMIT_NEEDS_KERNEL)
> -fi
> -])
> -
> -dnl
> -dnl Check for 64-bit off_t -- used for malloc alignment
> -dnl
> -dnl C does not allow duplicate case labels, so the compile will fail if
> -dnl sizeof(off_t) is > 4.
> -dnl
> -AC_DEFUN([BASH_CHECK_OFF_T_64],
> -[AC_CACHE_CHECK(for 64-bit off_t, bash_cv_off_t_64,
> -AC_TRY_COMPILE([
> -#ifdef HAVE_UNISTD_H
> -#include <unistd.h>
> -#endif
> -#include <sys/types.h>
> -],[
> -switch (0) case 0: case (sizeof (off_t) <= 4):;
> -], bash_cv_off_t_64=no, bash_cv_off_t_64=yes))
> -if test $bash_cv_off_t_64 = yes; then
> - AC_DEFINE(HAVE_OFF_T_64)
> -fi])
> -
> -AC_DEFUN([BASH_CHECK_RTSIGS],
> -[AC_MSG_CHECKING(for unusable real-time signals due to large values)
> -AC_CACHE_VAL(bash_cv_unusable_rtsigs,
> -[AC_TRY_RUN([
> -#include <sys/types.h>
> -#include <signal.h>
> -
> -#ifndef NSIG
> -# define NSIG 64
> -#endif
> -
> -main ()
> -{
> - int n_sigs = 2 * NSIG;
> -#ifdef SIGRTMIN
> - int rtmin = SIGRTMIN;
> -#else
> - int rtmin = 0;
> -#endif
> -
> - exit(rtmin < n_sigs);
> -}], bash_cv_unusable_rtsigs=yes, bash_cv_unusable_rtsigs=no,
> - [AC_MSG_WARN(cannot check real-time signals if cross compiling -- defaulting to yes)
> - bash_cv_unusable_rtsigs=yes]
> -)])
> -AC_MSG_RESULT($bash_cv_unusable_rtsigs)
> -if test $bash_cv_unusable_rtsigs = yes; then
> -AC_DEFINE(UNUSABLE_RT_SIGNALS)
> -fi
> -])
> -
> -dnl
> -dnl check for availability of multibyte characters and functions
> -dnl
> -AH_TEMPLATE([HAVE_MBSRTOWCS], [Define if we have the mbsrtowcs function])
> -AH_TEMPLATE([HAVE_WCWIDTH], [Define if we have the wcwidth function])
> -AH_TEMPLATE([HAVE_MBSTATE_T], [Define if we have mbstate_t])
> -AH_TEMPLATE([HAVE_LANGINFO_CODESET], [Define if we have nl_langinfo and CODESET])
> -AC_DEFUN([BASH_CHECK_MULTIBYTE],
> -[
> -AC_CHECK_HEADERS(wctype.h)
> -AC_CHECK_HEADERS(wchar.h)
> -AC_CHECK_HEADERS(langinfo.h)
> -
> -AC_CHECK_FUNC(mbsrtowcs, AC_DEFINE(HAVE_MBSRTOWCS))
> -AC_CHECK_FUNC(wcwidth, AC_DEFINE(HAVE_WCWIDTH))
> -
> -AC_CACHE_CHECK([for mbstate_t], bash_cv_have_mbstate_t,
> -[AC_TRY_RUN([
> -#include <wchar.h>
> -int
> -main ()
> -{
> - mbstate_t ps;
> - return 0;
> -}], bash_cv_have_mbstate_t=yes, bash_cv_have_mbstate_t=no)])
> -if test $bash_cv_have_mbstate_t = yes; then
> - AC_DEFINE(HAVE_MBSTATE_T)
> -fi
> -
> -AC_CACHE_CHECK([for nl_langinfo and CODESET], bash_cv_langinfo_codeset,
> -[AC_TRY_LINK(
> -[#include <langinfo.h>],
> -[char* cs = nl_langinfo(CODESET);],
> -bash_cv_langinfo_codeset=yes, bash_cv_langinfo_codeset=no)])
> -if test $bash_cv_langinfo_codeset = yes; then
> - AC_DEFINE(HAVE_LANGINFO_CODESET)
> -fi
> -
> -])
> -
> -dnl need: prefix exec_prefix libdir includedir CC TERMCAP_LIB
> -dnl require:
> -dnl AC_PROG_CC
> -dnl BASH_CHECK_LIB_TERMCAP
> -
> -AC_DEFUN([RL_LIB_READLINE_VERSION],
> -[
> -AC_REQUIRE([BASH_CHECK_LIB_TERMCAP])
> -
> -AC_MSG_CHECKING([version of installed readline library])
> -
> -# What a pain in the ass this is.
> -
> -# save cpp and ld options
> -_save_CFLAGS="$CFLAGS"
> -_save_LDFLAGS="$LDFLAGS"
> -_save_LIBS="$LIBS"
> -
> -# Don't set ac_cv_rl_prefix if the caller has already assigned a value. This
> -# allows the caller to do something like $_rl_prefix=$withval if the user
> -# specifies --with-installed-readline=PREFIX as an argument to configure
> -
> -if test -z "$ac_cv_rl_prefix"; then
> -test "x$prefix" = xNONE && ac_cv_rl_prefix=$ac_default_prefix || ac_cv_rl_prefix=${prefix}
> -fi
> -
> -eval ac_cv_rl_includedir=${ac_cv_rl_prefix}/include
> -eval ac_cv_rl_libdir=${ac_cv_rl_prefix}/lib
> -
> -LIBS="$LIBS -lreadline ${TERMCAP_LIB}"
> -CFLAGS="$CFLAGS -I${ac_cv_rl_includedir}"
> -LDFLAGS="$LDFLAGS -L${ac_cv_rl_libdir}"
> -
> -AC_TRY_RUN([
> -#include <stdio.h>
> -#include <readline/readline.h>
> -
> -main()
> -{
> - FILE *fp;
> - fp = fopen("conftest.rlv", "w");
> - if (fp == 0) exit(1);
> - fprintf(fp, "%s\n", rl_library_version ? rl_library_version : "0.0");
> - fclose(fp);
> - exit(0);
> -}
> -],
> -ac_cv_rl_version=`cat conftest.rlv`,
> -ac_cv_rl_version='0.0',
> -ac_cv_rl_version='4.2')
> -
> -CFLAGS="$_save_CFLAGS"
> -LDFLAGS="$_save_LDFLAGS"
> -LIBS="$_save_LIBS"
> -
> -RL_MAJOR=0
> -RL_MINOR=0
> -
> -# (
> -case "$ac_cv_rl_version" in
> -2*|3*|4*|5*|6*|7*|8*|9*)
> - RL_MAJOR=`echo $ac_cv_rl_version | sed 's:\..*$::'`
> - RL_MINOR=`echo $ac_cv_rl_version | sed -e 's:^.*\.::' -e 's:[[a-zA-Z]]*$::'`
> - ;;
> -esac
> -
> -# (((
> -case $RL_MAJOR in
> -[[0-9][0-9]]) _RL_MAJOR=$RL_MAJOR ;;
> -[[0-9]]) _RL_MAJOR=0$RL_MAJOR ;;
> -*) _RL_MAJOR=00 ;;
> -esac
> -
> -# (((
> -case $RL_MINOR in
> -[[0-9][0-9]]) _RL_MINOR=$RL_MINOR ;;
> -[[0-9]]) _RL_MINOR=0$RL_MINOR ;;
> -*) _RL_MINOR=00 ;;
> -esac
> -
> -RL_VERSION="0x${_RL_MAJOR}${_RL_MINOR}"
> -
> -# Readline versions greater than 4.2 have these defines in readline.h
> -
> -if test $ac_cv_rl_version = '0.0' ; then
> - AC_MSG_WARN([Could not test version of installed readline library.])
> -elif test $RL_MAJOR -gt 4 || { test $RL_MAJOR = 4 && test $RL_MINOR -gt 2 ; } ; then
> - # set these for use by the caller
> - RL_PREFIX=$ac_cv_rl_prefix
> - RL_LIBDIR=$ac_cv_rl_libdir
> - RL_INCLUDEDIR=$ac_cv_rl_includedir
> - AC_MSG_RESULT($ac_cv_rl_version)
> -else
> -
> -AC_DEFINE_UNQUOTED(RL_READLINE_VERSION, $RL_VERSION, [encoded version of the installed readline library])
> -AC_DEFINE_UNQUOTED(RL_VERSION_MAJOR, $RL_MAJOR, [major version of installed readline library])
> -AC_DEFINE_UNQUOTED(RL_VERSION_MINOR, $RL_MINOR, [minor version of installed readline library])
> -
> -AC_SUBST(RL_VERSION)
> -AC_SUBST(RL_MAJOR)
> -AC_SUBST(RL_MINOR)
> -
> -# set these for use by the caller
> -RL_PREFIX=$ac_cv_rl_prefix
> -RL_LIBDIR=$ac_cv_rl_libdir
> -RL_INCLUDEDIR=$ac_cv_rl_includedir
> -
> -AC_MSG_RESULT($ac_cv_rl_version)
> -
> -fi
> -])
> diff --git a/meta/recipes-core/readline/readline-5.2/acinclude.m4 b/meta/recipes-core/readline/readline-5.2/acinclude.m4
> new file mode 100644
> index 0000000..8a45f99
> --- /dev/null
> +++ b/meta/recipes-core/readline/readline-5.2/acinclude.m4
> @@ -0,0 +1,1815 @@
> +dnl
> +dnl Bash specific tests
> +dnl
> +dnl Some derived from PDKSH 5.1.3 autoconf tests
> +dnl
> +
> +AC_DEFUN([BASH_C_LONG_LONG],
> +[AC_CACHE_CHECK(for long long, ac_cv_c_long_long,
> +[if test "$GCC" = yes; then
> + ac_cv_c_long_long=yes
> +else
> +AC_TRY_RUN([
> +int
> +main()
> +{
> +long long foo = 0;
> +exit(sizeof(long long) < sizeof(long));
> +}
> +], ac_cv_c_long_long=yes, ac_cv_c_long_long=no)
> +fi])
> +if test $ac_cv_c_long_long = yes; then
> + AC_DEFINE(HAVE_LONG_LONG, 1, [Define if the `long long' type works.])
> +fi
> +])
> +
> +dnl
> +dnl This is very similar to AC_C_LONG_DOUBLE, with the fix for IRIX
> +dnl (< changed to <=) added.
> +dnl
> +AC_DEFUN([BASH_C_LONG_DOUBLE],
> +[AC_CACHE_CHECK(for long double, ac_cv_c_long_double,
> +[if test "$GCC" = yes; then
> + ac_cv_c_long_double=yes
> +else
> +AC_TRY_RUN([
> +int
> +main()
> +{
> + /* The Stardent Vistra knows sizeof(long double), but does not
> + support it. */
> + long double foo = 0.0;
> + /* On Ultrix 4.3 cc, long double is 4 and double is 8. */
> + /* On IRIX 5.3, the compiler converts long double to double with a warning,
> + but compiles this successfully. */
> + exit(sizeof(long double) <= sizeof(double));
> +}
> +], ac_cv_c_long_double=yes, ac_cv_c_long_double=no)
> +fi])
> +if test $ac_cv_c_long_double = yes; then
> + AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if the `long double' type works.])
> +fi
> +])
> +
> +dnl
> +dnl Check for <inttypes.h>. This is separated out so that it can be
> +dnl AC_REQUIREd.
> +dnl
> +dnl BASH_HEADER_INTTYPES
> +AC_DEFUN([BASH_HEADER_INTTYPES],
> +[
> + AC_CHECK_HEADERS(inttypes.h)
> +])
> +
> +dnl
> +dnl check for typedef'd symbols in header files, but allow the caller to
> +dnl specify the include files to be checked in addition to the default
> +dnl
> +dnl BASH_CHECK_TYPE(TYPE, HEADERS, DEFAULT[, VALUE-IF-FOUND])
> +AC_DEFUN([BASH_CHECK_TYPE],
> +[
> +AC_REQUIRE([AC_HEADER_STDC])dnl
> +AC_REQUIRE([BASH_HEADER_INTTYPES])
> +AC_MSG_CHECKING(for $1)
> +AC_CACHE_VAL(bash_cv_type_$1,
> +[AC_EGREP_CPP($1, [#include <sys/types.h>
> +#if STDC_HEADERS
> +#include <stdlib.h>
> +#include <stddef.h>
> +#endif
> +#if HAVE_INTTYPES_H
> +#include <inttypes.h>
> +#endif
> +$2
> +], bash_cv_type_$1=yes, bash_cv_type_$1=no)])
> +AC_MSG_RESULT($bash_cv_type_$1)
> +ifelse($#, 4, [if test $bash_cv_type_$1 = yes; then
> + AC_DEFINE($4)
> + fi])
> +if test $bash_cv_type_$1 = no; then
> + AC_DEFINE_UNQUOTED($1, $3)
> +fi
> +])
> +
> +dnl
> +dnl BASH_CHECK_DECL(FUNC)
> +dnl
> +dnl Check for a declaration of FUNC in stdlib.h and inttypes.h like
> +dnl AC_CHECK_DECL
> +dnl
> +AC_DEFUN([BASH_CHECK_DECL],
> +[
> +AC_REQUIRE([AC_HEADER_STDC])
> +AC_REQUIRE([BASH_HEADER_INTTYPES])
> +AC_CACHE_CHECK([for declaration of $1], bash_cv_decl_$1,
> +[AC_TRY_LINK(
> +[
> +#if STDC_HEADERS
> +# include <stdlib.h>
> +#endif
> +#if HAVE_INTTYPES_H
> +# include <inttypes.h>
> +#endif
> +],
> +[return !$1;],
> +bash_cv_decl_$1=yes, bash_cv_decl_$1=no)])
> +bash_tr_func=HAVE_DECL_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
> +if test $bash_cv_decl_$1 = yes; then
> + AC_DEFINE_UNQUOTED($bash_tr_func, 1)
> +else
> + AC_DEFINE_UNQUOTED($bash_tr_func, 0)
> +fi
> +])
> +
> +AC_DEFUN([BASH_DECL_PRINTF],
> +[AC_MSG_CHECKING(for declaration of printf in <stdio.h>)
> +AC_CACHE_VAL(bash_cv_printf_declared,
> +[AC_TRY_RUN([
> +#include <stdio.h>
> +#ifdef __STDC__
> +typedef int (*_bashfunc)(const char *, ...);
> +#else
> +typedef int (*_bashfunc)();
> +#endif
> +main()
> +{
> +_bashfunc pf;
> +pf = (_bashfunc) printf;
> +exit(pf == 0);
> +}
> +], bash_cv_printf_declared=yes, bash_cv_printf_declared=no,
> + [AC_MSG_WARN(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)
> +fi
> +])
> +
> +AC_DEFUN([BASH_DECL_SBRK],
> +[AC_MSG_CHECKING(for declaration of sbrk in <unistd.h>)
> +AC_CACHE_VAL(bash_cv_sbrk_declared,
> +[AC_EGREP_HEADER(sbrk, unistd.h,
> + bash_cv_sbrk_declared=yes, bash_cv_sbrk_declared=no)])
> +AC_MSG_RESULT($bash_cv_sbrk_declared)
> +if test $bash_cv_sbrk_declared = yes; then
> +AC_DEFINE(SBRK_DECLARED)
> +fi
> +])
> +
> +dnl
> +dnl Check for sys_siglist[] or _sys_siglist[]
> +dnl
> +AC_DEFUN([BASH_DECL_UNDER_SYS_SIGLIST],
> +[AC_MSG_CHECKING([for _sys_siglist in signal.h or unistd.h])
> +AC_CACHE_VAL(bash_cv_decl_under_sys_siglist,
> +[AC_TRY_COMPILE([
> +#include <sys/types.h>
> +#include <signal.h>
> +#ifdef HAVE_UNISTD_H
> +#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_WARN(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)
> +fi
> +])
> +
> +AC_DEFUN([BASH_UNDER_SYS_SIGLIST],
> +[AC_REQUIRE([BASH_DECL_UNDER_SYS_SIGLIST])
> +AC_MSG_CHECKING([for _sys_siglist in system C library])
> +AC_CACHE_VAL(bash_cv_under_sys_siglist,
> +[AC_TRY_RUN([
> +#include <sys/types.h>
> +#include <signal.h>
> +#ifdef HAVE_UNISTD_H
> +#include <unistd.h>
> +#endif
> +#ifndef UNDER_SYS_SIGLIST_DECLARED
> +extern char *_sys_siglist[];
> +#endif
> +main()
> +{
> +char *msg = (char *)_sys_siglist[2];
> +exit(msg == 0);
> +}],
> + bash_cv_under_sys_siglist=yes, bash_cv_under_sys_siglist=no,
> + [AC_MSG_WARN(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)
> +fi
> +])
> +
> +AC_DEFUN([BASH_SYS_SIGLIST],
> +[
> +AC_CHECK_DECLS([sys_siglist])
> +AC_MSG_CHECKING([for sys_siglist in system C library])
> +AC_CACHE_VAL(bash_cv_sys_siglist,
> +[AC_TRY_RUN([
> +#include <sys/types.h>
> +#include <signal.h>
> +#ifdef HAVE_UNISTD_H
> +#include <unistd.h>
> +#endif
> +#ifndef HAVE_DECL_SYS_SIGLIST
> +extern char *sys_siglist[];
> +#endif
> +main()
> +{
> +char *msg = sys_siglist[2];
> +exit(msg == 0);
> +}],
> + bash_cv_sys_siglist=yes, bash_cv_sys_siglist=no,
> + [AC_MSG_WARN(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)
> +fi
> +])
> +
> +dnl Check for the various permutations of sys_siglist and make sure we
> +dnl compile in siglist.o if they're not defined
> +AC_DEFUN([BASH_CHECK_SYS_SIGLIST], [
> +AC_REQUIRE([BASH_SYS_SIGLIST])
> +AC_REQUIRE([BASH_DECL_UNDER_SYS_SIGLIST])
> +AC_REQUIRE([BASH_FUNC_STRSIGNAL])
> +if test "$bash_cv_sys_siglist" = no && test "$bash_cv_under_sys_siglist" = no && test "$bash_cv_have_strsignal" = no; then
> + SIGLIST_O=siglist.o
> +else
> + SIGLIST_O=
> +fi
> +AC_SUBST([SIGLIST_O])
> +])
> +
> +dnl Check for sys_errlist[] and sys_nerr, check for declaration
> +AC_DEFUN([BASH_SYS_ERRLIST],
> +[AC_MSG_CHECKING([for sys_errlist and sys_nerr])
> +AC_CACHE_VAL(bash_cv_sys_errlist,
> +[AC_TRY_LINK([#include <errno.h>],
> +[extern char *sys_errlist[];
> + extern int sys_nerr;
> + char *msg = sys_errlist[sys_nerr - 1];],
> + bash_cv_sys_errlist=yes, bash_cv_sys_errlist=no)])dnl
> +AC_MSG_RESULT($bash_cv_sys_errlist)
> +if test $bash_cv_sys_errlist = yes; then
> +AC_DEFINE(HAVE_SYS_ERRLIST)
> +fi
> +])
> +
> +dnl
> +dnl Check if dup2() does not clear the close on exec flag
> +dnl
> +AC_DEFUN([BASH_FUNC_DUP2_CLOEXEC_CHECK],
> +[AC_MSG_CHECKING(if dup2 fails to clear the close-on-exec flag)
> +AC_CACHE_VAL(bash_cv_dup2_broken,
> +[AC_TRY_RUN([
> +#include <sys/types.h>
> +#include <fcntl.h>
> +main()
> +{
> + int fd1, fd2, fl;
> + fd1 = open("/dev/null", 2);
> + if (fcntl(fd1, 2, 1) < 0)
> + exit(1);
> + fd2 = dup2(fd1, 1);
> + if (fd2 < 0)
> + exit(2);
> + fl = fcntl(fd2, 1, 0);
> + /* fl will be 1 if dup2 did not reset the close-on-exec flag. */
> + exit(fl != 1);
> +}
> +], bash_cv_dup2_broken=yes, bash_cv_dup2_broken=no,
> + [AC_MSG_WARN(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
> +AC_DEFINE(DUP2_BROKEN)
> +fi
> +])
> +
> +AC_DEFUN([BASH_FUNC_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>],
> +[char *s = (char *)strsignal(2);],
> + bash_cv_have_strsignal=yes, bash_cv_have_strsignal=no)])
> +AC_MSG_RESULT($bash_cv_have_strsignal)
> +if test $bash_cv_have_strsignal = yes; then
> +AC_DEFINE(HAVE_STRSIGNAL)
> +fi
> +])
> +
> +dnl Check to see if opendir will open non-directories (not a nice thing)
> +AC_DEFUN([BASH_FUNC_OPENDIR_CHECK],
> +[AC_REQUIRE([AC_HEADER_DIRENT])dnl
> +AC_MSG_CHECKING(if opendir() opens non-directories)
> +AC_CACHE_VAL(bash_cv_opendir_not_robust,
> +[AC_TRY_RUN([
> +#include <stdio.h>
> +#include <sys/types.h>
> +#include <fcntl.h>
> +#ifdef HAVE_UNISTD_H
> +# include <unistd.h>
> +#endif /* HAVE_UNISTD_H */
> +#if defined(HAVE_DIRENT_H)
> +# include <dirent.h>
> +#else
> +# define dirent direct
> +# ifdef HAVE_SYS_NDIR_H
> +# include <sys/ndir.h>
> +# endif /* SYSNDIR */
> +# ifdef HAVE_SYS_DIR_H
> +# include <sys/dir.h>
> +# endif /* SYSDIR */
> +# ifdef HAVE_NDIR_H
> +# include <ndir.h>
> +# endif
> +#endif /* HAVE_DIRENT_H */
> +main()
> +{
> +DIR *dir;
> +int fd, err;
> +err = mkdir("/tmp/bash-aclocal", 0700);
> +if (err < 0) {
> + perror("mkdir");
> + exit(1);
> +}
> +unlink("/tmp/bash-aclocal/not_a_directory");
> +fd = open("/tmp/bash-aclocal/not_a_directory", O_WRONLY|O_CREAT|O_EXCL, 0666);
> +write(fd, "\n", 1);
> +close(fd);
> +dir = opendir("/tmp/bash-aclocal/not_a_directory");
> +unlink("/tmp/bash-aclocal/not_a_directory");
> +rmdir("/tmp/bash-aclocal");
> +exit (dir == 0);
> +}], bash_cv_opendir_not_robust=yes,bash_cv_opendir_not_robust=no,
> + [AC_MSG_WARN(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)
> +fi
> +])
> +
> +dnl
> +AH_TEMPLATE([VOID_SIGHANDLER], [Define if signal handlers return type void])
> +AC_DEFUN([BASH_TYPE_SIGHANDLER],
> +[AC_MSG_CHECKING([whether signal handlers are of type void])
> +AC_CACHE_VAL(bash_cv_void_sighandler,
> +[AC_TRY_COMPILE([#include <sys/types.h>
> +#include <signal.h>
> +#ifdef signal
> +#undef signal
> +#endif
> +#ifdef __cplusplus
> +extern "C"
> +#endif
> +void (*signal ()) ();],
> +[int i;], bash_cv_void_sighandler=yes, bash_cv_void_sighandler=no)])dnl
> +AC_MSG_RESULT($bash_cv_void_sighandler)
> +if test $bash_cv_void_sighandler = yes; then
> +AC_DEFINE(VOID_SIGHANDLER)
> +fi
> +])
> +
> +dnl
> +dnl A signed 16-bit integer quantity
> +dnl
> +AC_DEFUN([BASH_TYPE_BITS16_T],
> +[
> +if test "$ac_cv_sizeof_short" = 2; then
> + AC_CHECK_TYPE(bits16_t, short)
> +elif test "$ac_cv_sizeof_char" = 2; then
> + AC_CHECK_TYPE(bits16_t, char)
> +else
> + AC_CHECK_TYPE(bits16_t, short)
> +fi
> +])
> +
> +dnl
> +dnl An unsigned 16-bit integer quantity
> +dnl
> +AC_DEFUN([BASH_TYPE_U_BITS16_T],
> +[
> +if test "$ac_cv_sizeof_short" = 2; then
> + AC_CHECK_TYPE(u_bits16_t, unsigned short)
> +elif test "$ac_cv_sizeof_char" = 2; then
> + AC_CHECK_TYPE(u_bits16_t, unsigned char)
> +else
> + AC_CHECK_TYPE(u_bits16_t, unsigned short)
> +fi
> +])
> +
> +dnl
> +dnl A signed 32-bit integer quantity
> +dnl
> +AC_DEFUN([BASH_TYPE_BITS32_T],
> +[
> +if test "$ac_cv_sizeof_int" = 4; then
> + AC_CHECK_TYPE(bits32_t, int)
> +elif test "$ac_cv_sizeof_long" = 4; then
> + AC_CHECK_TYPE(bits32_t, long)
> +else
> + AC_CHECK_TYPE(bits32_t, int)
> +fi
> +])
> +
> +dnl
> +dnl An unsigned 32-bit integer quantity
> +dnl
> +AC_DEFUN([BASH_TYPE_U_BITS32_T],
> +[
> +if test "$ac_cv_sizeof_int" = 4; then
> + AC_CHECK_TYPE(u_bits32_t, unsigned int)
> +elif test "$ac_cv_sizeof_long" = 4; then
> + AC_CHECK_TYPE(u_bits32_t, unsigned long)
> +else
> + AC_CHECK_TYPE(u_bits32_t, unsigned int)
> +fi
> +])
> +
> +AC_DEFUN([BASH_TYPE_PTRDIFF_T],
> +[
> +if test "$ac_cv_sizeof_int" = "$ac_cv_sizeof_char_p"; then
> + AC_CHECK_TYPE(ptrdiff_t, int)
> +elif test "$ac_cv_sizeof_long" = "$ac_cv_sizeof_char_p"; then
> + AC_CHECK_TYPE(ptrdiff_t, long)
> +elif test "$ac_cv_type_long_long" = yes && test "$ac_cv_sizeof_long_long" = "$ac_cv_sizeof_char_p"; then
> + AC_CHECK_TYPE(ptrdiff_t, [long long])
> +else
> + AC_CHECK_TYPE(ptrdiff_t, int)
> +fi
> +])
> +
> +dnl
> +dnl A signed 64-bit quantity
> +dnl
> +AC_DEFUN([BASH_TYPE_BITS64_T],
> +[
> +if test "$ac_cv_sizeof_char_p" = 8; then
> + AC_CHECK_TYPE(bits64_t, char *)
> +elif test "$ac_cv_sizeof_double" = 8; then
> + AC_CHECK_TYPE(bits64_t, double)
> +elif test -n "$ac_cv_type_long_long" && test "$ac_cv_sizeof_long_long" = 8; then
> + AC_CHECK_TYPE(bits64_t, [long long])
> +elif test "$ac_cv_sizeof_long" = 8; then
> + AC_CHECK_TYPE(bits64_t, long)
> +else
> + AC_CHECK_TYPE(bits64_t, double)
> +fi
> +])
> +
> +AC_DEFUN([BASH_TYPE_LONG_LONG],
> +[
> +AC_CACHE_CHECK([for long long], bash_cv_type_long_long,
> +[AC_TRY_LINK([
> +long long ll = 1; int i = 63;],
> +[
> +long long llm = (long long) -1;
> +return ll << i | ll >> i | llm / ll | llm % ll;
> +], bash_cv_type_long_long='long long', bash_cv_type_long_long='long')])
> +if test "$bash_cv_type_long_long" = 'long long'; then
> + AC_DEFINE(HAVE_LONG_LONG, 1)
> +fi
> +])
> +
> +AC_DEFUN([BASH_TYPE_UNSIGNED_LONG_LONG],
> +[
> +AC_CACHE_CHECK([for unsigned long long], bash_cv_type_unsigned_long_long,
> +[AC_TRY_LINK([
> +unsigned long long ull = 1; int i = 63;],
> +[
> +unsigned long long ullmax = (unsigned long long) -1;
> +return ull << i | ull >> i | ullmax / ull | ullmax % ull;
> +], bash_cv_type_unsigned_long_long='unsigned long long',
> + bash_cv_type_unsigned_long_long='unsigned long')])
> +if test "$bash_cv_type_unsigned_long_long" = 'unsigned long long'; then
> + AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1)
> +fi
> +])
> +
> +dnl
> +dnl Type of struct rlimit fields: some systems (OSF/1, NetBSD, RISC/os 5.0)
> +dnl have a rlim_t, others (4.4BSD based systems) use quad_t, others use
> +dnl long and still others use int (HP-UX 9.01, SunOS 4.1.3). To simplify
> +dnl matters, this just checks for rlim_t, quad_t, or long.
> +dnl
> +AC_DEFUN([BASH_TYPE_RLIMIT],
> +[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>
> +#include <sys/resource.h>],
> +[rlim_t xxx;], bash_cv_type_rlimit=rlim_t,[
> +AC_TRY_RUN([
> +#include <sys/types.h>
> +#include <sys/time.h>
> +#include <sys/resource.h>
> +main()
> +{
> +#ifdef HAVE_QUAD_T
> + struct rlimit rl;
> + if (sizeof(rl.rlim_cur) == sizeof(quad_t))
> + exit(0);
> +#endif
> + exit(1);
> +}], bash_cv_type_rlimit=quad_t, bash_cv_type_rlimit=long,
> + [AC_MSG_WARN(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
> +AC_DEFINE(RLIMTYPE, quad_t)
> +elif test $bash_cv_type_rlimit = rlim_t; then
> +AC_DEFINE(RLIMTYPE, rlim_t)
> +fi
> +])
> +
> +AC_DEFUN([BASH_FUNC_LSTAT],
> +[dnl Cannot use AC_CHECK_FUNCS(lstat) because Linux defines lstat() as an
> +dnl inline function in <sys/stat.h>.
> +AC_CACHE_CHECK([for lstat], bash_cv_func_lstat,
> +[AC_TRY_LINK([
> +#include <sys/types.h>
> +#include <sys/stat.h>
> +],[ 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)
> +fi
> +])
> +
> +AC_DEFUN([BASH_FUNC_INET_ATON],
> +[
> +AC_CACHE_CHECK([for inet_aton], bash_cv_func_inet_aton,
> +[AC_TRY_LINK([
> +#include <sys/types.h>
> +#include <netinet/in.h>
> +#include <arpa/inet.h>
> +struct in_addr ap;], [ inet_aton("127.0.0.1", &ap); ],
> +bash_cv_func_inet_aton=yes, bash_cv_func_inet_aton=no)])
> +if test $bash_cv_func_inet_aton = yes; then
> + AC_DEFINE(HAVE_INET_ATON)
> +else
> + AC_LIBOBJ(inet_aton)
> +fi
> +])
> +
> +AC_DEFUN([BASH_FUNC_GETENV],
> +[AC_MSG_CHECKING(to see if getenv can be redefined)
> +AC_CACHE_VAL(bash_cv_getenv_redef,
> +[AC_TRY_RUN([
> +#ifdef HAVE_UNISTD_H
> +# include <unistd.h>
> +#endif
> +#ifndef __STDC__
> +# ifndef const
> +# define const
> +# endif
> +#endif
> +char *
> +getenv (name)
> +#if defined (__linux__) || defined (__bsdi__) || defined (convex)
> + const char *name;
> +#else
> + char const *name;
> +#endif /* !__linux__ && !__bsdi__ && !convex */
> +{
> +return "42";
> +}
> +main()
> +{
> +char *s;
> +/* The next allows this program to run, but does not allow bash to link
> + when it redefines getenv. I'm not really interested in figuring out
> + why not. */
> +#if defined (NeXT)
> +exit(1);
> +#endif
> +s = getenv("ABCDE");
> +exit(s == 0); /* force optimizer to leave getenv in */
> +}
> +], bash_cv_getenv_redef=yes, bash_cv_getenv_redef=no,
> + [AC_MSG_WARN(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)
> +fi
> +])
> +
> +# We should check for putenv before calling this
> +AC_DEFUN([BASH_FUNC_STD_PUTENV],
> +[
> +AC_REQUIRE([AC_HEADER_STDC])
> +AC_REQUIRE([AC_C_PROTOTYPES])
> +AC_CACHE_CHECK([for standard-conformant putenv declaration], bash_cv_std_putenv,
> +[AC_TRY_LINK([
> +#if STDC_HEADERS
> +#include <stdlib.h>
> +#include <stddef.h>
> +#endif
> +#ifndef __STDC__
> +# ifndef const
> +# define const
> +# endif
> +#endif
> +#ifdef PROTOTYPES
> +extern int putenv (char *);
> +#else
> +extern int putenv ();
> +#endif
> +],
> +[return (putenv == 0);],
> +bash_cv_std_putenv=yes, bash_cv_std_putenv=no
> +)])
> +if test $bash_cv_std_putenv = yes; then
> +AC_DEFINE(HAVE_STD_PUTENV)
> +fi
> +])
> +
> +# We should check for unsetenv before calling this
> +AC_DEFUN([BASH_FUNC_STD_UNSETENV],
> +[
> +AC_REQUIRE([AC_HEADER_STDC])
> +AC_REQUIRE([AC_C_PROTOTYPES])
> +AC_CACHE_CHECK([for standard-conformant unsetenv declaration], bash_cv_std_unsetenv,
> +[AC_TRY_LINK([
> +#if STDC_HEADERS
> +#include <stdlib.h>
> +#include <stddef.h>
> +#endif
> +#ifndef __STDC__
> +# ifndef const
> +# define const
> +# endif
> +#endif
> +#ifdef PROTOTYPES
> +extern int unsetenv (const char *);
> +#else
> +extern int unsetenv ();
> +#endif
> +],
> +[return (unsetenv == 0);],
> +bash_cv_std_unsetenv=yes, bash_cv_std_unsetenv=no
> +)])
> +if test $bash_cv_std_unsetenv = yes; then
> +AC_DEFINE(HAVE_STD_UNSETENV)
> +fi
> +])
> +
> +AC_DEFUN([BASH_FUNC_ULIMIT_MAXFDS],
> +[AC_MSG_CHECKING(whether ulimit can substitute for getdtablesize)
> +AC_CACHE_VAL(bash_cv_ulimit_maxfds,
> +[AC_TRY_RUN([
> +main()
> +{
> +long maxfds = ulimit(4, 0L);
> +exit (maxfds == -1L);
> +}
> +], bash_cv_ulimit_maxfds=yes, bash_cv_ulimit_maxfds=no,
> + [AC_MSG_WARN(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)
> +fi
> +])
> +
> +AC_DEFUN([BASH_FUNC_GETCWD],
> +[AC_MSG_CHECKING([if getcwd() calls popen()])
> +AC_CACHE_VAL(bash_cv_getcwd_calls_popen,
> +[AC_TRY_RUN([
> +#include <stdio.h>
> +#ifdef HAVE_UNISTD_H
> +#include <unistd.h>
> +#endif
> +
> +#ifndef __STDC__
> +#ifndef const
> +#define const
> +#endif
> +#endif
> +
> +int popen_called;
> +
> +FILE *
> +popen(command, type)
> + const char *command;
> + const char *type;
> +{
> + popen_called = 1;
> + return (FILE *)NULL;
> +}
> +
> +FILE *_popen(command, type)
> + const char *command;
> + const char *type;
> +{
> + return (popen (command, type));
> +}
> +
> +int
> +pclose(stream)
> +FILE *stream;
> +{
> + return 0;
> +}
> +
> +int
> +_pclose(stream)
> +FILE *stream;
> +{
> + return 0;
> +}
> +
> +main()
> +{
> + char lbuf[32];
> + popen_called = 0;
> + getcwd(lbuf, 32);
> + exit (popen_called);
> +}
> +], bash_cv_getcwd_calls_popen=no, bash_cv_getcwd_calls_popen=yes,
> + [AC_MSG_WARN(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)
> +AC_LIBOBJ(getcwd)
> +fi
> +])
> +
> +dnl
> +dnl This needs BASH_CHECK_SOCKLIB, but since that's not called on every
> +dnl system, we can't use AC_PREREQ
> +dnl
> +AC_DEFUN([BASH_FUNC_GETHOSTBYNAME],
> +[if test "X$bash_cv_have_gethostbyname" = "X"; then
> +_bash_needmsg=yes
> +else
> +AC_MSG_CHECKING(for gethostbyname in socket library)
> +_bash_needmsg=
> +fi
> +AC_CACHE_VAL(bash_cv_have_gethostbyname,
> +[AC_TRY_LINK([#include <netdb.h>],
> +[ struct hostent *hp;
> + hp = gethostbyname("localhost");
> +], bash_cv_have_gethostbyname=yes, bash_cv_have_gethostbyname=no)]
> +)
> +if test "X$_bash_needmsg" = Xyes; then
> + AC_MSG_CHECKING(for gethostbyname in socket library)
> +fi
> +AC_MSG_RESULT($bash_cv_have_gethostbyname)
> +if test "$bash_cv_have_gethostbyname" = yes; then
> +AC_DEFINE(HAVE_GETHOSTBYNAME)
> +fi
> +])
> +
> +AC_DEFUN([BASH_FUNC_FNMATCH_EXTMATCH],
> +[AC_MSG_CHECKING(if fnmatch does extended pattern matching with FNM_EXTMATCH)
> +AC_CACHE_VAL(bash_cv_fnm_extmatch,
> +[AC_TRY_RUN([
> +#include <fnmatch.h>
> +
> +main()
> +{
> +#ifdef FNM_EXTMATCH
> + exit (0);
> +#else
> + exit (1);
> +#endif
> +}
> +], bash_cv_fnm_extmatch=yes, bash_cv_fnm_extmatch=no,
> + [AC_MSG_WARN(cannot check FNM_EXTMATCH if cross compiling -- defaulting to no)
> + bash_cv_fnm_extmatch=no])
> +])
> +AC_MSG_RESULT($bash_cv_fnm_extmatch)
> +if test $bash_cv_fnm_extmatch = yes; then
> +AC_DEFINE(HAVE_LIBC_FNM_EXTMATCH)
> +fi
> +])
> +
> +AH_TEMPLATE([HAVE_POSIX_SIGSETJMP], [Define if we POSIX-style sigsetjmp/siglongjmp are available])
> +AC_DEFUN([BASH_FUNC_POSIX_SETJMP],
> +[AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
> +AC_MSG_CHECKING(for presence of POSIX-style sigsetjmp/siglongjmp)
> +AC_CACHE_VAL(bash_cv_func_sigsetjmp,
> +[AC_TRY_RUN([
> +#ifdef HAVE_UNISTD_H
> +#include <unistd.h>
> +#endif
> +#include <sys/types.h>
> +#include <signal.h>
> +#include <setjmp.h>
> +
> +main()
> +{
> +#if !defined (_POSIX_VERSION) || !defined (HAVE_POSIX_SIGNALS)
> +exit (1);
> +#else
> +
> +int code;
> +sigset_t set, oset;
> +sigjmp_buf xx;
> +
> +/* get the mask */
> +sigemptyset(&set);
> +sigemptyset(&oset);
> +sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &set);
> +sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &oset);
> +
> +/* save it */
> +code = sigsetjmp(xx, 1);
> +if (code)
> + exit(0); /* could get sigmask and compare to oset here. */
> +
> +/* change it */
> +sigaddset(&set, SIGINT);
> +sigprocmask(SIG_BLOCK, &set, (sigset_t *)NULL);
> +
> +/* and siglongjmp */
> +siglongjmp(xx, 10);
> +exit(1);
> +#endif
> +}], bash_cv_func_sigsetjmp=present, bash_cv_func_sigsetjmp=missing,
> + [AC_MSG_WARN(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)
> +fi
> +])
> +
> +AH_TEMPLATE([STRCOLL_BROKEN], [Define if strcoll is broken with respect to strcmp in the default locale.])
> +AC_DEFUN([BASH_FUNC_STRCOLL],
> +[
> +AC_MSG_CHECKING(whether or not strcoll and strcmp differ)
> +AC_CACHE_VAL(bash_cv_func_strcoll_broken,
> +[AC_TRY_RUN([
> +#include <stdio.h>
> +#if defined (HAVE_LOCALE_H)
> +#include <locale.h>
> +#endif
> +
> +main(c, v)
> +int c;
> +char *v[];
> +{
> + int r1, r2;
> + char *deflocale, *defcoll;
> +
> +#ifdef HAVE_SETLOCALE
> + deflocale = setlocale(LC_ALL, "");
> + defcoll = setlocale(LC_COLLATE, "");
> +#endif
> +
> +#ifdef HAVE_STRCOLL
> + /* These two values are taken from tests/glob-test. */
> + r1 = strcoll("abd", "aXd");
> +#else
> + r1 = 0;
> +#endif
> + r2 = strcmp("abd", "aXd");
> +
> + /* These two should both be greater than 0. It is permissible for
> + a system to return different values, as long as the sign is the
> + same. */
> +
> + /* Exit with 1 (failure) if these two values are both > 0, since
> + this tests whether strcoll(3) is broken with respect to strcmp(3)
> + in the default locale. */
> + exit (r1 > 0 && r2 > 0);
> +}
> +], bash_cv_func_strcoll_broken=yes, bash_cv_func_strcoll_broken=no,
> + [AC_MSG_WARN(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
> +])
> +
> +AC_DEFUN([BASH_FUNC_PRINTF_A_FORMAT],
> +[AC_MSG_CHECKING([for printf floating point output in hex notation])
> +AC_CACHE_VAL(bash_cv_printf_a_format,
> +[AC_TRY_RUN([
> +#include <stdio.h>
> +#include <string.h>
> +
> +int
> +main()
> +{
> + double y = 0.0;
> + char abuf[1024];
> +
> + sprintf(abuf, "%A", y);
> + exit(strchr(abuf, 'P') == (char *)0);
> +}
> +], bash_cv_printf_a_format=yes, bash_cv_printf_a_format=no,
> + [AC_MSG_WARN(cannot check printf if cross compiling -- defaulting to no)
> + bash_cv_printf_a_format=no]
> +)])
> +AC_MSG_RESULT($bash_cv_printf_a_format)
> +if test $bash_cv_printf_a_format = yes; then
> +AC_DEFINE(HAVE_PRINTF_A_FORMAT)
> +fi
> +])
> +
> +AC_DEFUN([BASH_STRUCT_TERMIOS_LDISC],
> +[
> +AC_CHECK_MEMBER(struct termios.c_line, AC_DEFINE(TERMIOS_LDISC), ,[
> +#include <sys/types.h>
> +#include <termios.h>
> +])
> +])
> +
> +AC_DEFUN([BASH_STRUCT_TERMIO_LDISC],
> +[
> +AC_CHECK_MEMBER(struct termio.c_line, AC_DEFINE(TERMIO_LDISC), ,[
> +#include <sys/types.h>
> +#include <termio.h>
> +])
> +])
> +
> +dnl
> +dnl Like AC_STRUCT_ST_BLOCKS, but doesn't muck with LIBOBJS
> +dnl
> +dnl sets bash_cv_struct_stat_st_blocks
> +dnl
> +dnl unused for now; we'll see how AC_CHECK_MEMBERS works
> +dnl
> +AC_DEFUN([BASH_STRUCT_ST_BLOCKS],
> +[
> +AC_MSG_CHECKING([for struct stat.st_blocks])
> +AC_CACHE_VAL(bash_cv_struct_stat_st_blocks,
> +[AC_TRY_COMPILE(
> +[
> +#include <sys/types.h>
> +#include <sys/stat.h>
> +],
> +[
> +main()
> +{
> +static struct stat a;
> +if (a.st_blocks) return 0;
> +return 0;
> +}
> +], bash_cv_struct_stat_st_blocks=yes, bash_cv_struct_stat_st_blocks=no)
> +])
> +AC_MSG_RESULT($bash_cv_struct_stat_st_blocks)
> +if test "$bash_cv_struct_stat_st_blocks" = "yes"; then
> +AC_DEFINE(HAVE_STRUCT_STAT_ST_BLOCKS)
> +fi
> +])
> +
> +AC_DEFUN([BASH_CHECK_LIB_TERMCAP],
> +[
> +if test "X$bash_cv_termcap_lib" = "X"; then
> +_bash_needmsg=yes
> +else
> +AC_MSG_CHECKING(which library has the termcap functions)
> +_bash_needmsg=
> +fi
> +AC_CACHE_VAL(bash_cv_termcap_lib,
> +[AC_CHECK_LIB(termcap, tgetent, bash_cv_termcap_lib=libtermcap,
> + [AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo,
> + [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses,
> + [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses,
> + bash_cv_termcap_lib=gnutermcap)])])])])
> +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 && test -z "$prefer_curses"; then
> +LDFLAGS="$LDFLAGS -L./lib/termcap"
> +TERMCAP_LIB="./lib/termcap/libtermcap.a"
> +TERMCAP_DEP="./lib/termcap/libtermcap.a"
> +elif test $bash_cv_termcap_lib = libtermcap && test -z "$prefer_curses"; then
> +TERMCAP_LIB=-ltermcap
> +TERMCAP_DEP=
> +elif test $bash_cv_termcap_lib = libtinfo; then
> +TERMCAP_LIB=-ltinfo
> +TERMCAP_DEP=
> +elif test $bash_cv_termcap_lib = libncurses; then
> +TERMCAP_LIB=-lncurses
> +TERMCAP_DEP=
> +else
> +TERMCAP_LIB=-lcurses
> +TERMCAP_DEP=
> +fi
> +])
> +
> +dnl
> +dnl Check for the presence of getpeername in libsocket.
> +dnl If libsocket is present, check for libnsl and add it to LIBS if
> +dnl it's there, since most systems with libsocket require linking
> +dnl with libnsl as well. This should only be called if getpeername
> +dnl was not found in libc.
> +dnl
> +dnl NOTE: IF WE FIND GETPEERNAME, WE ASSUME THAT WE HAVE BIND/CONNECT
> +dnl AS WELL
> +dnl
> +AC_DEFUN([BASH_CHECK_LIB_SOCKET],
> +[
> +if test "X$bash_cv_have_socklib" = "X"; then
> +_bash_needmsg=
> +else
> +AC_MSG_CHECKING(for socket library)
> +_bash_needmsg=yes
> +fi
> +AC_CACHE_VAL(bash_cv_have_socklib,
> +[AC_CHECK_LIB(socket, getpeername,
> + bash_cv_have_socklib=yes, bash_cv_have_socklib=no, -lnsl)])
> +if test "X$_bash_needmsg" = Xyes; then
> + AC_MSG_RESULT($bash_cv_have_socklib)
> + _bash_needmsg=
> +fi
> +if test $bash_cv_have_socklib = yes; then
> + # check for libnsl, add it to LIBS if present
> + if test "X$bash_cv_have_libnsl" = "X"; then
> + _bash_needmsg=
> + else
> + AC_MSG_CHECKING(for libnsl)
> + _bash_needmsg=yes
> + fi
> + AC_CACHE_VAL(bash_cv_have_libnsl,
> + [AC_CHECK_LIB(nsl, t_open,
> + bash_cv_have_libnsl=yes, bash_cv_have_libnsl=no)])
> + if test "X$_bash_needmsg" = Xyes; then
> + AC_MSG_RESULT($bash_cv_have_libnsl)
> + _bash_needmsg=
> + fi
> + if test $bash_cv_have_libnsl = yes; then
> + LIBS="-lsocket -lnsl $LIBS"
> + else
> + LIBS="-lsocket $LIBS"
> + fi
> + AC_DEFINE(HAVE_LIBSOCKET)
> + AC_DEFINE(HAVE_GETPEERNAME)
> +fi
> +])
> +
> +AH_TEMPLATE([STRUCT_DIRENT_HAS_D_INO], [Define if struct dirent has a d_ino member])
> +AC_DEFUN([BASH_STRUCT_DIRENT_D_INO],
> +[AC_REQUIRE([AC_HEADER_DIRENT])
> +AC_MSG_CHECKING(if struct dirent has a d_ino member)
> +AC_CACHE_VAL(bash_cv_dirent_has_dino,
> +[AC_TRY_COMPILE([
> +#include <stdio.h>
> +#include <sys/types.h>
> +#ifdef HAVE_UNISTD_H
> +# include <unistd.h>
> +#endif /* HAVE_UNISTD_H */
> +#if defined(HAVE_DIRENT_H)
> +# include <dirent.h>
> +#else
> +# define dirent direct
> +# ifdef HAVE_SYS_NDIR_H
> +# include <sys/ndir.h>
> +# endif /* SYSNDIR */
> +# ifdef HAVE_SYS_DIR_H
> +# include <sys/dir.h>
> +# endif /* SYSDIR */
> +# ifdef HAVE_NDIR_H
> +# include <ndir.h>
> +# endif
> +#endif /* HAVE_DIRENT_H */
> +],[
> +struct dirent d; int z; z = d.d_ino;
> +], bash_cv_dirent_has_dino=yes, bash_cv_dirent_has_dino=no)])
> +AC_MSG_RESULT($bash_cv_dirent_has_dino)
> +if test $bash_cv_dirent_has_dino = yes; then
> +AC_DEFINE(STRUCT_DIRENT_HAS_D_INO)
> +fi
> +])
> +
> +AH_TEMPLATE([STRUCT_DIRENT_HAS_D_FILENO], [Define if struct dirent has a d_fileno member])
> +AC_DEFUN([BASH_STRUCT_DIRENT_D_FILENO],
> +[AC_REQUIRE([AC_HEADER_DIRENT])
> +AC_MSG_CHECKING(if struct dirent has a d_fileno member)
> +AC_CACHE_VAL(bash_cv_dirent_has_d_fileno,
> +[AC_TRY_COMPILE([
> +#include <stdio.h>
> +#include <sys/types.h>
> +#ifdef HAVE_UNISTD_H
> +# include <unistd.h>
> +#endif /* HAVE_UNISTD_H */
> +#if defined(HAVE_DIRENT_H)
> +# include <dirent.h>
> +#else
> +# define dirent direct
> +# ifdef HAVE_SYS_NDIR_H
> +# include <sys/ndir.h>
> +# endif /* SYSNDIR */
> +# ifdef HAVE_SYS_DIR_H
> +# include <sys/dir.h>
> +# endif /* SYSDIR */
> +# ifdef HAVE_NDIR_H
> +# include <ndir.h>
> +# endif
> +#endif /* HAVE_DIRENT_H */
> +],[
> +struct dirent d; int z; z = d.d_fileno;
> +], bash_cv_dirent_has_d_fileno=yes, bash_cv_dirent_has_d_fileno=no)])
> +AC_MSG_RESULT($bash_cv_dirent_has_d_fileno)
> +if test $bash_cv_dirent_has_d_fileno = yes; then
> +AC_DEFINE(STRUCT_DIRENT_HAS_D_FILENO)
> +fi
> +])
> +
> +AC_DEFUN([BASH_STRUCT_TIMEVAL],
> +[AC_MSG_CHECKING(for struct timeval in sys/time.h and time.h)
> +AC_CACHE_VAL(bash_cv_struct_timeval,
> +[
> +AC_EGREP_HEADER(struct timeval, sys/time.h,
> + bash_cv_struct_timeval=yes,
> + AC_EGREP_HEADER(struct timeval, time.h,
> + bash_cv_struct_timeval=yes,
> + bash_cv_struct_timeval=no))
> +])
> +AC_MSG_RESULT($bash_cv_struct_timeval)
> +if test $bash_cv_struct_timeval = yes; then
> + AC_DEFINE(HAVE_TIMEVAL)
> +fi
> +])
> +
> +AH_TEMPLATE([STRUCT_WINSIZE_IN_SYS_IOCTL], [Define if struct winsize is in sys/ioctl.h])
> +AH_TEMPLATE([STRUCT_WINSIZE_IN_TERMIOS], [Define if struct winsize is in termios.h])
> +AC_DEFUN([BASH_STRUCT_WINSIZE],
> +[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_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
> +])
> +
> +dnl Check type of signal routines (posix, 4.2bsd, 4.1bsd or v7)
> +AH_TEMPLATE([HAVE_POSIX_SIGNALS], [Define if we have the POSIX signal routines])
> +AH_TEMPLATE([HAVE_BSD_SIGNALS], [Define if we have the BSD signal routines])
> +AH_TEMPLATE([HAVE_USG_SIGHOLD], [Define if we have the USG signal routines])
> +AC_DEFUN([BASH_SYS_SIGNAL_VINTAGE],
> +[AC_REQUIRE([AC_TYPE_SIGNAL])
> +AC_MSG_CHECKING(for type of signal functions)
> +AC_CACHE_VAL(bash_cv_signal_vintage,
> +[
> + AC_MSG_WARN([checking for posix...])
> + AC_TRY_LINK([#include <signal.h>],[
> + sigset_t ss;
> + struct sigaction sa;
> + sigemptyset(&ss); sigsuspend(&ss);
> + sigaction(SIGINT, &sa, (struct sigaction *) 0);
> + sigprocmask(SIG_BLOCK, &ss, (sigset_t *) 0);
> + ], bash_cv_signal_vintage="posix",
> + [
> + AC_MSG_WARN([checking for 4.2bsd...])
> + AC_TRY_LINK([#include <signal.h>], [
> + int mask = sigmask(SIGINT);
> + sigsetmask(mask); sigblock(mask); sigpause(mask);
> + ], bash_cv_signal_vintage="4.2bsd",
> + [
> + AC_MSG_WARN([checking for svr3...])
> + AC_TRY_LINK([
> + #include <signal.h>
> + RETSIGTYPE foo() { }], [
> + int mask = sigmask(SIGINT);
> + sigset(SIGINT, foo); sigrelse(SIGINT);
> + sighold(SIGINT); sigpause(SIGINT);
> + ], bash_cv_signal_vintage="svr3", bash_cv_signal_vintage="v7"
> + )]
> + )]
> +)
> +])
> +AC_MSG_RESULT($bash_cv_signal_vintage)
> +if test "$bash_cv_signal_vintage" = "posix"; then
> +AC_DEFINE(HAVE_POSIX_SIGNALS)
> +elif test "$bash_cv_signal_vintage" = "4.2bsd"; then
> +AC_DEFINE(HAVE_BSD_SIGNALS)
> +elif test "$bash_cv_signal_vintage" = "svr3"; then
> +AC_DEFINE(HAVE_USG_SIGHOLD)
> +fi
> +])
> +
> +dnl Check if the pgrp of setpgrp() can't be the pid of a zombie process.
> +AC_DEFUN([BASH_SYS_PGRP_SYNC],
> +[AC_REQUIRE([AC_FUNC_GETPGRP])
> +AC_MSG_CHECKING(whether pgrps need synchronization)
> +AC_CACHE_VAL(bash_cv_pgrp_pipe,
> +[AC_TRY_RUN([
> +#ifdef HAVE_UNISTD_H
> +# include <unistd.h>
> +#endif
> +main()
> +{
> +# ifdef GETPGRP_VOID
> +# define getpgID() getpgrp()
> +# else
> +# define getpgID() getpgrp(0)
> +# define setpgid(x,y) setpgrp(x,y)
> +# endif
> + int pid1, pid2, fds[2];
> + int status;
> + char ok;
> +
> + switch (pid1 = fork()) {
> + case -1:
> + exit(1);
> + case 0:
> + setpgid(0, getpid());
> + exit(0);
> + }
> + setpgid(pid1, pid1);
> +
> + sleep(2); /* let first child die */
> +
> + if (pipe(fds) < 0)
> + exit(2);
> +
> + switch (pid2 = fork()) {
> + case -1:
> + exit(3);
> + case 0:
> + setpgid(0, pid1);
> + ok = getpgID() == pid1;
> + write(fds[1], &ok, 1);
> + exit(0);
> + }
> + setpgid(pid2, pid1);
> +
> + close(fds[1]);
> + if (read(fds[0], &ok, 1) != 1)
> + exit(4);
> + wait(&status);
> + wait(&status);
> + exit(ok ? 0 : 5);
> +}
> +], bash_cv_pgrp_pipe=no,bash_cv_pgrp_pipe=yes,
> + [AC_MSG_WARN(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
> +AC_DEFINE(PGRP_PIPE)
> +fi
> +])
> +
> +AH_TEMPLATE([MUST_REINSTALL_SIGHANDLERS], [Define if signal handlers must be reinstalled when invoked.])
> +AC_DEFUN([BASH_SYS_REINSTALL_SIGHANDLERS],
> +[AC_REQUIRE([AC_TYPE_SIGNAL])
> +AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
> +AC_MSG_CHECKING([if signal handlers must be reinstalled when invoked])
> +AC_CACHE_VAL(bash_cv_must_reinstall_sighandlers,
> +[AC_TRY_RUN([
> +#include <signal.h>
> +#ifdef HAVE_UNISTD_H
> +#include <unistd.h>
> +#endif
> +
> +typedef RETSIGTYPE sigfunc();
> +
> +int nsigint;
> +
> +#ifdef HAVE_POSIX_SIGNALS
> +sigfunc *
> +set_signal_handler(sig, handler)
> + int sig;
> + sigfunc *handler;
> +{
> + struct sigaction act, oact;
> + act.sa_handler = handler;
> + act.sa_flags = 0;
> + sigemptyset (&act.sa_mask);
> + sigemptyset (&oact.sa_mask);
> + sigaction (sig, &act, &oact);
> + return (oact.sa_handler);
> +}
> +#else
> +#define set_signal_handler(s, h) signal(s, h)
> +#endif
> +
> +RETSIGTYPE
> +sigint(s)
> +int s;
> +{
> + nsigint++;
> +}
> +
> +main()
> +{
> + nsigint = 0;
> + set_signal_handler(SIGINT, sigint);
> + kill((int)getpid(), SIGINT);
> + kill((int)getpid(), SIGINT);
> + exit(nsigint != 2);
> +}
> +], bash_cv_must_reinstall_sighandlers=no, bash_cv_must_reinstall_sighandlers=yes,
> + [AC_MSG_WARN(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)
> +fi
> +])
> +
> +dnl check that some necessary job control definitions are present
> +AC_DEFUN([BASH_SYS_JOB_CONTROL_MISSING],
> +[AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
> +AC_MSG_CHECKING(for presence of necessary job control definitions)
> +AC_CACHE_VAL(bash_cv_job_control_missing,
> +[AC_TRY_RUN([
> +#include <sys/types.h>
> +#ifdef HAVE_SYS_WAIT_H
> +#include <sys/wait.h>
> +#endif
> +#ifdef HAVE_UNISTD_H
> +#include <unistd.h>
> +#endif
> +#include <signal.h>
> +
> +/* Add more tests in here as appropriate. */
> +main()
> +{
> +/* signal type */
> +#if !defined (HAVE_POSIX_SIGNALS) && !defined (HAVE_BSD_SIGNALS)
> +exit(1);
> +#endif
> +
> +/* signals and tty control. */
> +#if !defined (SIGTSTP) || !defined (SIGSTOP) || !defined (SIGCONT)
> +exit (1);
> +#endif
> +
> +/* process control */
> +#if !defined (WNOHANG) || !defined (WUNTRACED)
> +exit(1);
> +#endif
> +
> +/* Posix systems have tcgetpgrp and waitpid. */
> +#if defined (_POSIX_VERSION) && !defined (HAVE_TCGETPGRP)
> +exit(1);
> +#endif
> +
> +#if defined (_POSIX_VERSION) && !defined (HAVE_WAITPID)
> +exit(1);
> +#endif
> +
> +/* Other systems have TIOCSPGRP/TIOCGPRGP and wait3. */
> +#if !defined (_POSIX_VERSION) && !defined (HAVE_WAIT3)
> +exit(1);
> +#endif
> +
> +exit(0);
> +}], bash_cv_job_control_missing=present, bash_cv_job_control_missing=missing,
> + [AC_MSG_WARN(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)
> +fi
> +])
> +
> +dnl check whether named pipes are present
> +dnl this requires a previous check for mkfifo, but that is awkward to specify
> +AC_DEFUN([BASH_SYS_NAMED_PIPES],
> +[AC_MSG_CHECKING(for presence of named pipes)
> +AC_CACHE_VAL(bash_cv_sys_named_pipes,
> +[AC_TRY_RUN([
> +#include <sys/types.h>
> +#include <sys/stat.h>
> +#ifdef HAVE_UNISTD_H
> +#include <unistd.h>
> +#endif
> +
> +/* Add more tests in here as appropriate. */
> +main()
> +{
> +int fd, err;
> +
> +#if defined (HAVE_MKFIFO)
> +exit (0);
> +#endif
> +
> +#if !defined (S_IFIFO) && (defined (_POSIX_VERSION) && !defined (S_ISFIFO))
> +exit (1);
> +#endif
> +
> +#if defined (NeXT)
> +exit (1);
> +#endif
> +err = mkdir("/tmp/bash-aclocal", 0700);
> +if (err < 0) {
> + perror ("mkdir");
> + exit(1);
> +}
> +fd = mknod ("/tmp/bash-aclocal/sh-np-autoconf", 0666 | S_IFIFO, 0);
> +if (fd == -1) {
> + rmdir ("/tmp/bash-aclocal");
> + exit (1);
> +}
> +close(fd);
> +unlink ("/tmp/bash-aclocal/sh-np-autoconf");
> +rmdir ("/tmp/bash-aclocal");
> +exit(0);
> +}], bash_cv_sys_named_pipes=present, bash_cv_sys_named_pipes=missing,
> + [AC_MSG_WARN(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)
> +fi
> +])
> +
> +AC_DEFUN([BASH_SYS_DEFAULT_MAIL_DIR],
> +[AC_MSG_CHECKING(for default mail directory)
> +AC_CACHE_VAL(bash_cv_mail_dir,
> +[if test -d /var/mail; then
> + bash_cv_mail_dir=/var/mail
> + elif test -d /var/spool/mail; then
> + bash_cv_mail_dir=/var/spool/mail
> + elif test -d /usr/mail; then
> + bash_cv_mail_dir=/usr/mail
> + elif test -d /usr/spool/mail; then
> + bash_cv_mail_dir=/usr/spool/mail
> + else
> + bash_cv_mail_dir=unknown
> + fi
> +])
> +AC_MSG_RESULT($bash_cv_mail_dir)
> +AC_DEFINE_UNQUOTED(DEFAULT_MAIL_DIRECTORY, "$bash_cv_mail_dir")
> +])
> +
> +AC_DEFUN([BASH_HAVE_TIOCGWINSZ],
> +[AC_MSG_CHECKING(for TIOCGWINSZ in sys/ioctl.h)
> +AC_CACHE_VAL(bash_cv_tiocgwinsz_in_ioctl,
> +[AC_TRY_COMPILE([#include <sys/types.h>
> +#include <sys/ioctl.h>], [int x = TIOCGWINSZ;],
> + bash_cv_tiocgwinsz_in_ioctl=yes,bash_cv_tiocgwinsz_in_ioctl=no)])
> +AC_MSG_RESULT($bash_cv_tiocgwinsz_in_ioctl)
> +if test $bash_cv_tiocgwinsz_in_ioctl = yes; then
> +AC_DEFINE(GWINSZ_IN_SYS_IOCTL)
> +fi
> +])
> +
> +AH_TEMPLATE([TIOCSTAT_IN_SYS_IOCTL], [Define if TIOCSTAT is in sys/ioctl.h])
> +AC_DEFUN([BASH_HAVE_TIOCSTAT],
> +[AC_MSG_CHECKING(for TIOCSTAT in sys/ioctl.h)
> +AC_CACHE_VAL(bash_cv_tiocstat_in_ioctl,
> +[AC_TRY_COMPILE([#include <sys/types.h>
> +#include <sys/ioctl.h>], [int x = TIOCSTAT;],
> + bash_cv_tiocstat_in_ioctl=yes,bash_cv_tiocstat_in_ioctl=no)])
> +AC_MSG_RESULT($bash_cv_tiocstat_in_ioctl)
> +if test $bash_cv_tiocstat_in_ioctl = yes; then
> +AC_DEFINE(TIOCSTAT_IN_SYS_IOCTL)
> +fi
> +])
> +
> +AH_TEMPLATE([FIONREAD_IN_SYS_IOCTL], [Define if FIONREAD is in sys/ioctl.h])
> +AC_DEFUN([BASH_HAVE_FIONREAD],
> +[AC_MSG_CHECKING(for FIONREAD in sys/ioctl.h)
> +AC_CACHE_VAL(bash_cv_fionread_in_ioctl,
> +[AC_TRY_COMPILE([#include <sys/types.h>
> +#include <sys/ioctl.h>], [int x = FIONREAD;],
> + bash_cv_fionread_in_ioctl=yes,bash_cv_fionread_in_ioctl=no)])
> +AC_MSG_RESULT($bash_cv_fionread_in_ioctl)
> +if test $bash_cv_fionread_in_ioctl = yes; then
> +AC_DEFINE(FIONREAD_IN_SYS_IOCTL)
> +fi
> +])
> +
> +dnl
> +dnl See if speed_t is declared in <sys/types.h>. Some versions of linux
> +dnl require a definition of speed_t each time <termcap.h> is included,
> +dnl but you can only get speed_t if you include <termios.h> (on some
> +dnl versions) or <sys/types.h> (on others).
> +dnl
> +AH_TEMPLATE([SPEED_T_IN_SYS_TYPES], [Define if speed_t is in sys/types.h])
> +AC_DEFUN([BASH_CHECK_SPEED_T],
> +[AC_MSG_CHECKING(for speed_t in sys/types.h)
> +AC_CACHE_VAL(bash_cv_speed_t_in_sys_types,
> +[AC_TRY_COMPILE([#include <sys/types.h>], [speed_t x;],
> + bash_cv_speed_t_in_sys_types=yes,bash_cv_speed_t_in_sys_types=no)])
> +AC_MSG_RESULT($bash_cv_speed_t_in_sys_types)
> +if test $bash_cv_speed_t_in_sys_types = yes; then
> +AC_DEFINE(SPEED_T_IN_SYS_TYPES)
> +fi
> +])
> +
> +AH_TEMPLATE([HAVE_GETPW_DECLS], [Define if getpw functions are declared in pwd.h])
> +AC_DEFUN([BASH_CHECK_GETPW_FUNCS],
> +[AC_MSG_CHECKING(whether getpw functions are declared in pwd.h)
> +AC_CACHE_VAL(bash_cv_getpw_declared,
> +[AC_EGREP_CPP(getpwuid,
> +[
> +#include <sys/types.h>
> +#ifdef HAVE_UNISTD_H
> +# include <unistd.h>
> +#endif
> +#include <pwd.h>
> +],
> +bash_cv_getpw_declared=yes,bash_cv_getpw_declared=no)])
> +AC_MSG_RESULT($bash_cv_getpw_declared)
> +if test $bash_cv_getpw_declared = yes; then
> +AC_DEFINE(HAVE_GETPW_DECLS)
> +fi
> +])
> +
> +AC_DEFUN([BASH_CHECK_DEV_FD],
> +[AC_MSG_CHECKING(whether /dev/fd is available)
> +AC_CACHE_VAL(bash_cv_dev_fd,
> +[if test -d /dev/fd && test -r /dev/fd/0; then
> + bash_cv_dev_fd=standard
> + elif test -d /proc/self/fd && test -r /proc/self/fd/0; then
> + bash_cv_dev_fd=whacky
> + else
> + bash_cv_dev_fd=absent
> + fi
> +])
> +AC_MSG_RESULT($bash_cv_dev_fd)
> +if test $bash_cv_dev_fd = "standard"; then
> + AC_DEFINE(HAVE_DEV_FD)
> + AC_DEFINE(DEV_FD_PREFIX, "/dev/fd/")
> +elif test $bash_cv_dev_fd = "whacky"; then
> + AC_DEFINE(HAVE_DEV_FD)
> + AC_DEFINE(DEV_FD_PREFIX, "/proc/self/fd/")
> +fi
> +])
> +
> +AC_DEFUN([BASH_CHECK_DEV_STDIN],
> +[AC_MSG_CHECKING(whether /dev/stdin stdout stderr are available)
> +AC_CACHE_VAL(bash_cv_dev_stdin,
> +[if test -d /dev/fd && test -r /dev/stdin; then
> + bash_cv_dev_stdin=present
> + elif test -d /proc/self/fd && test -r /dev/stdin; then
> + bash_cv_dev_stdin=present
> + else
> + bash_cv_dev_stdin=absent
> + fi
> +])
> +AC_MSG_RESULT($bash_cv_dev_stdin)
> +if test $bash_cv_dev_stdin = "present"; then
> + AC_DEFINE(HAVE_DEV_STDIN)
> +fi
> +])
> +
> +dnl
> +dnl Check if HPUX needs _KERNEL defined for RLIMIT_* definitions
> +dnl
> +AC_DEFUN([BASH_CHECK_KERNEL_RLIMIT],
> +[AC_MSG_CHECKING([whether $host_os needs _KERNEL for RLIMIT defines])
> +AC_CACHE_VAL(bash_cv_kernel_rlimit,
> +[AC_TRY_COMPILE([
> +#include <sys/types.h>
> +#include <sys/resource.h>
> +],
> +[
> + 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
> +],
> +[
> + int f;
> + f = RLIMIT_DATA;
> +], 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
> +AC_DEFINE(RLIMIT_NEEDS_KERNEL)
> +fi
> +])
> +
> +dnl
> +dnl Check for 64-bit off_t -- used for malloc alignment
> +dnl
> +dnl C does not allow duplicate case labels, so the compile will fail if
> +dnl sizeof(off_t) is > 4.
> +dnl
> +AC_DEFUN([BASH_CHECK_OFF_T_64],
> +[AC_CACHE_CHECK(for 64-bit off_t, bash_cv_off_t_64,
> +AC_TRY_COMPILE([
> +#ifdef HAVE_UNISTD_H
> +#include <unistd.h>
> +#endif
> +#include <sys/types.h>
> +],[
> +switch (0) case 0: case (sizeof (off_t) <= 4):;
> +], bash_cv_off_t_64=no, bash_cv_off_t_64=yes))
> +if test $bash_cv_off_t_64 = yes; then
> + AC_DEFINE(HAVE_OFF_T_64)
> +fi])
> +
> +AC_DEFUN([BASH_CHECK_RTSIGS],
> +[AC_MSG_CHECKING(for unusable real-time signals due to large values)
> +AC_CACHE_VAL(bash_cv_unusable_rtsigs,
> +[AC_TRY_RUN([
> +#include <sys/types.h>
> +#include <signal.h>
> +
> +#ifndef NSIG
> +# define NSIG 64
> +#endif
> +
> +main ()
> +{
> + int n_sigs = 2 * NSIG;
> +#ifdef SIGRTMIN
> + int rtmin = SIGRTMIN;
> +#else
> + int rtmin = 0;
> +#endif
> +
> + exit(rtmin < n_sigs);
> +}], bash_cv_unusable_rtsigs=yes, bash_cv_unusable_rtsigs=no,
> + [AC_MSG_WARN(cannot check real-time signals if cross compiling -- defaulting to yes)
> + bash_cv_unusable_rtsigs=yes]
> +)])
> +AC_MSG_RESULT($bash_cv_unusable_rtsigs)
> +if test $bash_cv_unusable_rtsigs = yes; then
> +AC_DEFINE(UNUSABLE_RT_SIGNALS)
> +fi
> +])
> +
> +dnl
> +dnl check for availability of multibyte characters and functions
> +dnl
> +AH_TEMPLATE([HAVE_MBSRTOWCS], [Define if we have the mbsrtowcs function])
> +AH_TEMPLATE([HAVE_WCWIDTH], [Define if we have the wcwidth function])
> +AH_TEMPLATE([HAVE_MBSTATE_T], [Define if we have mbstate_t])
> +AH_TEMPLATE([HAVE_LANGINFO_CODESET], [Define if we have nl_langinfo and CODESET])
> +AC_DEFUN([BASH_CHECK_MULTIBYTE],
> +[
> +AC_CHECK_HEADERS(wctype.h)
> +AC_CHECK_HEADERS(wchar.h)
> +AC_CHECK_HEADERS(langinfo.h)
> +
> +AC_CHECK_FUNC(mbsrtowcs, AC_DEFINE(HAVE_MBSRTOWCS))
> +AC_CHECK_FUNC(wcwidth, AC_DEFINE(HAVE_WCWIDTH))
> +
> +AC_CACHE_CHECK([for mbstate_t], bash_cv_have_mbstate_t,
> +[AC_TRY_RUN([
> +#include <wchar.h>
> +int
> +main ()
> +{
> + mbstate_t ps;
> + return 0;
> +}], bash_cv_have_mbstate_t=yes, bash_cv_have_mbstate_t=no)])
> +if test $bash_cv_have_mbstate_t = yes; then
> + AC_DEFINE(HAVE_MBSTATE_T)
> +fi
> +
> +AC_CACHE_CHECK([for nl_langinfo and CODESET], bash_cv_langinfo_codeset,
> +[AC_TRY_LINK(
> +[#include <langinfo.h>],
> +[char* cs = nl_langinfo(CODESET);],
> +bash_cv_langinfo_codeset=yes, bash_cv_langinfo_codeset=no)])
> +if test $bash_cv_langinfo_codeset = yes; then
> + AC_DEFINE(HAVE_LANGINFO_CODESET)
> +fi
> +
> +])
> +
> +dnl need: prefix exec_prefix libdir includedir CC TERMCAP_LIB
> +dnl require:
> +dnl AC_PROG_CC
> +dnl BASH_CHECK_LIB_TERMCAP
> +
> +AC_DEFUN([RL_LIB_READLINE_VERSION],
> +[
> +AC_REQUIRE([BASH_CHECK_LIB_TERMCAP])
> +
> +AC_MSG_CHECKING([version of installed readline library])
> +
> +# What a pain in the ass this is.
> +
> +# save cpp and ld options
> +_save_CFLAGS="$CFLAGS"
> +_save_LDFLAGS="$LDFLAGS"
> +_save_LIBS="$LIBS"
> +
> +# Don't set ac_cv_rl_prefix if the caller has already assigned a value. This
> +# allows the caller to do something like $_rl_prefix=$withval if the user
> +# specifies --with-installed-readline=PREFIX as an argument to configure
> +
> +if test -z "$ac_cv_rl_prefix"; then
> +test "x$prefix" = xNONE && ac_cv_rl_prefix=$ac_default_prefix || ac_cv_rl_prefix=${prefix}
> +fi
> +
> +eval ac_cv_rl_includedir=${ac_cv_rl_prefix}/include
> +eval ac_cv_rl_libdir=${ac_cv_rl_prefix}/lib
> +
> +LIBS="$LIBS -lreadline ${TERMCAP_LIB}"
> +CFLAGS="$CFLAGS -I${ac_cv_rl_includedir}"
> +LDFLAGS="$LDFLAGS -L${ac_cv_rl_libdir}"
> +
> +AC_TRY_RUN([
> +#include <stdio.h>
> +#include <readline/readline.h>
> +
> +main()
> +{
> + FILE *fp;
> + fp = fopen("conftest.rlv", "w");
> + if (fp == 0) exit(1);
> + fprintf(fp, "%s\n", rl_library_version ? rl_library_version : "0.0");
> + fclose(fp);
> + exit(0);
> +}
> +],
> +ac_cv_rl_version=`cat conftest.rlv`,
> +ac_cv_rl_version='0.0',
> +ac_cv_rl_version='4.2')
> +
> +CFLAGS="$_save_CFLAGS"
> +LDFLAGS="$_save_LDFLAGS"
> +LIBS="$_save_LIBS"
> +
> +RL_MAJOR=0
> +RL_MINOR=0
> +
> +# (
> +case "$ac_cv_rl_version" in
> +2*|3*|4*|5*|6*|7*|8*|9*)
> + RL_MAJOR=`echo $ac_cv_rl_version | sed 's:\..*$::'`
> + RL_MINOR=`echo $ac_cv_rl_version | sed -e 's:^.*\.::' -e 's:[[a-zA-Z]]*$::'`
> + ;;
> +esac
> +
> +# (((
> +case $RL_MAJOR in
> +[[0-9][0-9]]) _RL_MAJOR=$RL_MAJOR ;;
> +[[0-9]]) _RL_MAJOR=0$RL_MAJOR ;;
> +*) _RL_MAJOR=00 ;;
> +esac
> +
> +# (((
> +case $RL_MINOR in
> +[[0-9][0-9]]) _RL_MINOR=$RL_MINOR ;;
> +[[0-9]]) _RL_MINOR=0$RL_MINOR ;;
> +*) _RL_MINOR=00 ;;
> +esac
> +
> +RL_VERSION="0x${_RL_MAJOR}${_RL_MINOR}"
> +
> +# Readline versions greater than 4.2 have these defines in readline.h
> +
> +if test $ac_cv_rl_version = '0.0' ; then
> + AC_MSG_WARN([Could not test version of installed readline library.])
> +elif test $RL_MAJOR -gt 4 || { test $RL_MAJOR = 4 && test $RL_MINOR -gt 2 ; } ; then
> + # set these for use by the caller
> + RL_PREFIX=$ac_cv_rl_prefix
> + RL_LIBDIR=$ac_cv_rl_libdir
> + RL_INCLUDEDIR=$ac_cv_rl_includedir
> + AC_MSG_RESULT($ac_cv_rl_version)
> +else
> +
> +AC_DEFINE_UNQUOTED(RL_READLINE_VERSION, $RL_VERSION, [encoded version of the installed readline library])
> +AC_DEFINE_UNQUOTED(RL_VERSION_MAJOR, $RL_MAJOR, [major version of installed readline library])
> +AC_DEFINE_UNQUOTED(RL_VERSION_MINOR, $RL_MINOR, [minor version of installed readline library])
> +
> +AC_SUBST(RL_VERSION)
> +AC_SUBST(RL_MAJOR)
> +AC_SUBST(RL_MINOR)
> +
> +# set these for use by the caller
> +RL_PREFIX=$ac_cv_rl_prefix
> +RL_LIBDIR=$ac_cv_rl_libdir
> +RL_INCLUDEDIR=$ac_cv_rl_includedir
> +
> +AC_MSG_RESULT($ac_cv_rl_version)
> +
> +fi
> +])
> diff --git a/meta/recipes-core/readline/readline-6.2/acinclude.m4 b/meta/recipes-core/readline/readline-6.2/acinclude.m4
> new file mode 100644
> index 0000000..c30a7d3
> --- /dev/null
> +++ b/meta/recipes-core/readline/readline-6.2/acinclude.m4
> @@ -0,0 +1,1871 @@
> +dnl
> +dnl Bash specific tests
> +dnl
> +dnl Some derived from PDKSH 5.1.3 autoconf tests
> +dnl
> +
> +AC_DEFUN([BASH_C_LONG_LONG],
> +[AC_CACHE_CHECK(for long long, ac_cv_c_long_long,
> +[if test "$GCC" = yes; then
> + ac_cv_c_long_long=yes
> +else
> +AC_TRY_RUN([
> +int
> +main()
> +{
> +long long foo = 0;
> +exit(sizeof(long long) < sizeof(long));
> +}
> +], ac_cv_c_long_long=yes, ac_cv_c_long_long=no)
> +fi])
> +if test $ac_cv_c_long_long = yes; then
> + AC_DEFINE(HAVE_LONG_LONG, 1, [Define if the `long long' type works.])
> +fi
> +])
> +
> +dnl
> +dnl This is very similar to AC_C_LONG_DOUBLE, with the fix for IRIX
> +dnl (< changed to <=) added.
> +dnl
> +AC_DEFUN([BASH_C_LONG_DOUBLE],
> +[AC_CACHE_CHECK(for long double, ac_cv_c_long_double,
> +[if test "$GCC" = yes; then
> + ac_cv_c_long_double=yes
> +else
> +AC_TRY_RUN([
> +int
> +main()
> +{
> + /* The Stardent Vistra knows sizeof(long double), but does not
> + support it. */
> + long double foo = 0.0;
> + /* On Ultrix 4.3 cc, long double is 4 and double is 8. */
> + /* On IRIX 5.3, the compiler converts long double to double with a warning,
> + but compiles this successfully. */
> + exit(sizeof(long double) <= sizeof(double));
> +}
> +], ac_cv_c_long_double=yes, ac_cv_c_long_double=no)
> +fi])
> +if test $ac_cv_c_long_double = yes; then
> + AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if the `long double' type works.])
> +fi
> +])
> +
> +dnl
> +dnl Check for <inttypes.h>. This is separated out so that it can be
> +dnl AC_REQUIREd.
> +dnl
> +dnl BASH_HEADER_INTTYPES
> +AC_DEFUN([BASH_HEADER_INTTYPES],
> +[
> + AC_CHECK_HEADERS(inttypes.h)
> +])
> +
> +dnl
> +dnl check for typedef'd symbols in header files, but allow the caller to
> +dnl specify the include files to be checked in addition to the default
> +dnl
> +dnl BASH_CHECK_TYPE(TYPE, HEADERS, DEFAULT[, VALUE-IF-FOUND])
> +AC_DEFUN([BASH_CHECK_TYPE],
> +[
> +AC_REQUIRE([AC_HEADER_STDC])dnl
> +AC_REQUIRE([BASH_HEADER_INTTYPES])
> +AC_MSG_CHECKING(for $1)
> +AC_CACHE_VAL(bash_cv_type_$1,
> +[AC_EGREP_CPP($1, [#include <sys/types.h>
> +#if STDC_HEADERS
> +#include <stdlib.h>
> +#include <stddef.h>
> +#endif
> +#if HAVE_INTTYPES_H
> +#include <inttypes.h>
> +#endif
> +$2
> +], bash_cv_type_$1=yes, bash_cv_type_$1=no)])
> +AC_MSG_RESULT($bash_cv_type_$1)
> +ifelse($#, 4, [if test $bash_cv_type_$1 = yes; then
> + AC_DEFINE($4)
> + fi])
> +if test $bash_cv_type_$1 = no; then
> + AC_DEFINE_UNQUOTED($1, $3)
> +fi
> +])
> +
> +dnl
> +dnl BASH_CHECK_DECL(FUNC)
> +dnl
> +dnl Check for a declaration of FUNC in stdlib.h and inttypes.h like
> +dnl AC_CHECK_DECL
> +dnl
> +AC_DEFUN([BASH_CHECK_DECL],
> +[
> +AC_REQUIRE([AC_HEADER_STDC])
> +AC_REQUIRE([BASH_HEADER_INTTYPES])
> +AC_CACHE_CHECK([for declaration of $1], bash_cv_decl_$1,
> +[AC_TRY_LINK(
> +[
> +#if STDC_HEADERS
> +# include <stdlib.h>
> +#endif
> +#if HAVE_INTTYPES_H
> +# include <inttypes.h>
> +#endif
> +],
> +[return !$1;],
> +bash_cv_decl_$1=yes, bash_cv_decl_$1=no)])
> +bash_tr_func=HAVE_DECL_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
> +if test $bash_cv_decl_$1 = yes; then
> + AC_DEFINE_UNQUOTED($bash_tr_func, 1)
> +else
> + AC_DEFINE_UNQUOTED($bash_tr_func, 0)
> +fi
> +])
> +
> +AC_DEFUN([BASH_DECL_PRINTF],
> +[AC_MSG_CHECKING(for declaration of printf in <stdio.h>)
> +AC_CACHE_VAL(bash_cv_printf_declared,
> +[AC_TRY_RUN([
> +#include <stdio.h>
> +#ifdef __STDC__
> +typedef int (*_bashfunc)(const char *, ...);
> +#else
> +typedef int (*_bashfunc)();
> +#endif
> +main()
> +{
> +_bashfunc pf;
> +pf = (_bashfunc) printf;
> +exit(pf == 0);
> +}
> +], bash_cv_printf_declared=yes, bash_cv_printf_declared=no,
> + [AC_MSG_WARN(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)
> +fi
> +])
> +
> +AC_DEFUN([BASH_DECL_SBRK],
> +[AC_MSG_CHECKING(for declaration of sbrk in <unistd.h>)
> +AC_CACHE_VAL(bash_cv_sbrk_declared,
> +[AC_EGREP_HEADER(sbrk, unistd.h,
> + bash_cv_sbrk_declared=yes, bash_cv_sbrk_declared=no)])
> +AC_MSG_RESULT($bash_cv_sbrk_declared)
> +if test $bash_cv_sbrk_declared = yes; then
> +AC_DEFINE(SBRK_DECLARED)
> +fi
> +])
> +
> +dnl
> +dnl Check for sys_siglist[] or _sys_siglist[]
> +dnl
> +AC_DEFUN([BASH_DECL_UNDER_SYS_SIGLIST],
> +[AC_MSG_CHECKING([for _sys_siglist in signal.h or unistd.h])
> +AC_CACHE_VAL(bash_cv_decl_under_sys_siglist,
> +[AC_TRY_COMPILE([
> +#include <sys/types.h>
> +#include <signal.h>
> +#ifdef HAVE_UNISTD_H
> +#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_WARN(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)
> +fi
> +])
> +
> +AC_DEFUN([BASH_UNDER_SYS_SIGLIST],
> +[AC_REQUIRE([BASH_DECL_UNDER_SYS_SIGLIST])
> +AC_MSG_CHECKING([for _sys_siglist in system C library])
> +AC_CACHE_VAL(bash_cv_under_sys_siglist,
> +[AC_TRY_RUN([
> +#include <sys/types.h>
> +#include <signal.h>
> +#ifdef HAVE_UNISTD_H
> +#include <unistd.h>
> +#endif
> +#ifndef UNDER_SYS_SIGLIST_DECLARED
> +extern char *_sys_siglist[];
> +#endif
> +main()
> +{
> +char *msg = (char *)_sys_siglist[2];
> +exit(msg == 0);
> +}],
> + bash_cv_under_sys_siglist=yes, bash_cv_under_sys_siglist=no,
> + [AC_MSG_WARN(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)
> +fi
> +])
> +
> +AC_DEFUN([BASH_SYS_SIGLIST],
> +[
> +AC_CHECK_DECLS([sys_siglist])
> +AC_MSG_CHECKING([for sys_siglist in system C library])
> +AC_CACHE_VAL(bash_cv_sys_siglist,
> +[AC_TRY_RUN([
> +#include <sys/types.h>
> +#include <signal.h>
> +#ifdef HAVE_UNISTD_H
> +#include <unistd.h>
> +#endif
> +#ifndef HAVE_DECL_SYS_SIGLIST
> +extern char *sys_siglist[];
> +#endif
> +main()
> +{
> +char *msg = sys_siglist[2];
> +exit(msg == 0);
> +}],
> + bash_cv_sys_siglist=yes, bash_cv_sys_siglist=no,
> + [AC_MSG_WARN(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)
> +fi
> +])
> +
> +dnl Check for the various permutations of sys_siglist and make sure we
> +dnl compile in siglist.o if they're not defined
> +AC_DEFUN([BASH_CHECK_SYS_SIGLIST], [
> +AC_REQUIRE([BASH_SYS_SIGLIST])
> +AC_REQUIRE([BASH_DECL_UNDER_SYS_SIGLIST])
> +AC_REQUIRE([BASH_FUNC_STRSIGNAL])
> +if test "$bash_cv_sys_siglist" = no && test "$bash_cv_under_sys_siglist" = no && test "$bash_cv_have_strsignal" = no; then
> + SIGLIST_O=siglist.o
> +else
> + SIGLIST_O=
> +fi
> +AC_SUBST([SIGLIST_O])
> +])
> +
> +dnl Check for sys_errlist[] and sys_nerr, check for declaration
> +AC_DEFUN([BASH_SYS_ERRLIST],
> +[AC_MSG_CHECKING([for sys_errlist and sys_nerr])
> +AC_CACHE_VAL(bash_cv_sys_errlist,
> +[AC_TRY_LINK([#include <errno.h>],
> +[extern char *sys_errlist[];
> + extern int sys_nerr;
> + char *msg = sys_errlist[sys_nerr - 1];],
> + bash_cv_sys_errlist=yes, bash_cv_sys_errlist=no)])dnl
> +AC_MSG_RESULT($bash_cv_sys_errlist)
> +if test $bash_cv_sys_errlist = yes; then
> +AC_DEFINE(HAVE_SYS_ERRLIST)
> +fi
> +])
> +
> +dnl
> +dnl Check if dup2() does not clear the close on exec flag
> +dnl
> +AC_DEFUN([BASH_FUNC_DUP2_CLOEXEC_CHECK],
> +[AC_MSG_CHECKING(if dup2 fails to clear the close-on-exec flag)
> +AC_CACHE_VAL(bash_cv_dup2_broken,
> +[AC_TRY_RUN([
> +#include <sys/types.h>
> +#include <fcntl.h>
> +main()
> +{
> + int fd1, fd2, fl;
> + fd1 = open("/dev/null", 2);
> + if (fcntl(fd1, 2, 1) < 0)
> + exit(1);
> + fd2 = dup2(fd1, 1);
> + if (fd2 < 0)
> + exit(2);
> + fl = fcntl(fd2, 1, 0);
> + /* fl will be 1 if dup2 did not reset the close-on-exec flag. */
> + exit(fl != 1);
> +}
> +], bash_cv_dup2_broken=yes, bash_cv_dup2_broken=no,
> + [AC_MSG_WARN(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
> +AC_DEFINE(DUP2_BROKEN)
> +fi
> +])
> +
> +AC_DEFUN([BASH_FUNC_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>],
> +[char *s = (char *)strsignal(2);],
> + bash_cv_have_strsignal=yes, bash_cv_have_strsignal=no)])
> +AC_MSG_RESULT($bash_cv_have_strsignal)
> +if test $bash_cv_have_strsignal = yes; then
> +AC_DEFINE(HAVE_STRSIGNAL)
> +fi
> +])
> +
> +dnl Check to see if opendir will open non-directories (not a nice thing)
> +AC_DEFUN([BASH_FUNC_OPENDIR_CHECK],
> +[AC_REQUIRE([AC_HEADER_DIRENT])dnl
> +AC_MSG_CHECKING(if opendir() opens non-directories)
> +AC_CACHE_VAL(bash_cv_opendir_not_robust,
> +[AC_TRY_RUN([
> +#include <stdio.h>
> +#include <sys/types.h>
> +#include <fcntl.h>
> +#ifdef HAVE_UNISTD_H
> +# include <unistd.h>
> +#endif /* HAVE_UNISTD_H */
> +#if defined(HAVE_DIRENT_H)
> +# include <dirent.h>
> +#else
> +# define dirent direct
> +# ifdef HAVE_SYS_NDIR_H
> +# include <sys/ndir.h>
> +# endif /* SYSNDIR */
> +# ifdef HAVE_SYS_DIR_H
> +# include <sys/dir.h>
> +# endif /* SYSDIR */
> +# ifdef HAVE_NDIR_H
> +# include <ndir.h>
> +# endif
> +#endif /* HAVE_DIRENT_H */
> +main()
> +{
> +DIR *dir;
> +int fd, err;
> +err = mkdir("/tmp/bash-aclocal", 0700);
> +if (err < 0) {
> + perror("mkdir");
> + exit(1);
> +}
> +unlink("/tmp/bash-aclocal/not_a_directory");
> +fd = open("/tmp/bash-aclocal/not_a_directory", O_WRONLY|O_CREAT|O_EXCL, 0666);
> +write(fd, "\n", 1);
> +close(fd);
> +dir = opendir("/tmp/bash-aclocal/not_a_directory");
> +unlink("/tmp/bash-aclocal/not_a_directory");
> +rmdir("/tmp/bash-aclocal");
> +exit (dir == 0);
> +}], bash_cv_opendir_not_robust=yes,bash_cv_opendir_not_robust=no,
> + [AC_MSG_WARN(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)
> +fi
> +])
> +
> +dnl
> +AH_TEMPLATE([VOID_SIGHANDLER], [Define if signal handlers return type void])
> +AC_DEFUN([BASH_TYPE_SIGHANDLER],
> +[AC_MSG_CHECKING([whether signal handlers are of type void])
> +AC_CACHE_VAL(bash_cv_void_sighandler,
> +[AC_TRY_COMPILE([#include <sys/types.h>
> +#include <signal.h>
> +#ifdef signal
> +#undef signal
> +#endif
> +#ifdef __cplusplus
> +extern "C"
> +#endif
> +void (*signal ()) ();],
> +[int i;], bash_cv_void_sighandler=yes, bash_cv_void_sighandler=no)])dnl
> +AC_MSG_RESULT($bash_cv_void_sighandler)
> +if test $bash_cv_void_sighandler = yes; then
> +AC_DEFINE(VOID_SIGHANDLER)
> +fi
> +])
> +
> +dnl
> +dnl A signed 16-bit integer quantity
> +dnl
> +AC_DEFUN([BASH_TYPE_BITS16_T],
> +[
> +if test "$ac_cv_sizeof_short" = 2; then
> + AC_CHECK_TYPE(bits16_t, short)
> +elif test "$ac_cv_sizeof_char" = 2; then
> + AC_CHECK_TYPE(bits16_t, char)
> +else
> + AC_CHECK_TYPE(bits16_t, short)
> +fi
> +])
> +
> +dnl
> +dnl An unsigned 16-bit integer quantity
> +dnl
> +AC_DEFUN([BASH_TYPE_U_BITS16_T],
> +[
> +if test "$ac_cv_sizeof_short" = 2; then
> + AC_CHECK_TYPE(u_bits16_t, unsigned short)
> +elif test "$ac_cv_sizeof_char" = 2; then
> + AC_CHECK_TYPE(u_bits16_t, unsigned char)
> +else
> + AC_CHECK_TYPE(u_bits16_t, unsigned short)
> +fi
> +])
> +
> +dnl
> +dnl A signed 32-bit integer quantity
> +dnl
> +AC_DEFUN([BASH_TYPE_BITS32_T],
> +[
> +if test "$ac_cv_sizeof_int" = 4; then
> + AC_CHECK_TYPE(bits32_t, int)
> +elif test "$ac_cv_sizeof_long" = 4; then
> + AC_CHECK_TYPE(bits32_t, long)
> +else
> + AC_CHECK_TYPE(bits32_t, int)
> +fi
> +])
> +
> +dnl
> +dnl An unsigned 32-bit integer quantity
> +dnl
> +AC_DEFUN([BASH_TYPE_U_BITS32_T],
> +[
> +if test "$ac_cv_sizeof_int" = 4; then
> + AC_CHECK_TYPE(u_bits32_t, unsigned int)
> +elif test "$ac_cv_sizeof_long" = 4; then
> + AC_CHECK_TYPE(u_bits32_t, unsigned long)
> +else
> + AC_CHECK_TYPE(u_bits32_t, unsigned int)
> +fi
> +])
> +
> +AC_DEFUN([BASH_TYPE_PTRDIFF_T],
> +[
> +if test "$ac_cv_sizeof_int" = "$ac_cv_sizeof_char_p"; then
> + AC_CHECK_TYPE(ptrdiff_t, int)
> +elif test "$ac_cv_sizeof_long" = "$ac_cv_sizeof_char_p"; then
> + AC_CHECK_TYPE(ptrdiff_t, long)
> +elif test "$ac_cv_type_long_long" = yes && test "$ac_cv_sizeof_long_long" = "$ac_cv_sizeof_char_p"; then
> + AC_CHECK_TYPE(ptrdiff_t, [long long])
> +else
> + AC_CHECK_TYPE(ptrdiff_t, int)
> +fi
> +])
> +
> +dnl
> +dnl A signed 64-bit quantity
> +dnl
> +AC_DEFUN([BASH_TYPE_BITS64_T],
> +[
> +if test "$ac_cv_sizeof_char_p" = 8; then
> + AC_CHECK_TYPE(bits64_t, char *)
> +elif test "$ac_cv_sizeof_double" = 8; then
> + AC_CHECK_TYPE(bits64_t, double)
> +elif test -n "$ac_cv_type_long_long" && test "$ac_cv_sizeof_long_long" = 8; then
> + AC_CHECK_TYPE(bits64_t, [long long])
> +elif test "$ac_cv_sizeof_long" = 8; then
> + AC_CHECK_TYPE(bits64_t, long)
> +else
> + AC_CHECK_TYPE(bits64_t, double)
> +fi
> +])
> +
> +AC_DEFUN([BASH_TYPE_LONG_LONG],
> +[
> +AC_CACHE_CHECK([for long long], bash_cv_type_long_long,
> +[AC_TRY_LINK([
> +long long ll = 1; int i = 63;],
> +[
> +long long llm = (long long) -1;
> +return ll << i | ll >> i | llm / ll | llm % ll;
> +], bash_cv_type_long_long='long long', bash_cv_type_long_long='long')])
> +if test "$bash_cv_type_long_long" = 'long long'; then
> + AC_DEFINE(HAVE_LONG_LONG, 1)
> +fi
> +])
> +
> +AC_DEFUN([BASH_TYPE_UNSIGNED_LONG_LONG],
> +[
> +AC_CACHE_CHECK([for unsigned long long], bash_cv_type_unsigned_long_long,
> +[AC_TRY_LINK([
> +unsigned long long ull = 1; int i = 63;],
> +[
> +unsigned long long ullmax = (unsigned long long) -1;
> +return ull << i | ull >> i | ullmax / ull | ullmax % ull;
> +], bash_cv_type_unsigned_long_long='unsigned long long',
> + bash_cv_type_unsigned_long_long='unsigned long')])
> +if test "$bash_cv_type_unsigned_long_long" = 'unsigned long long'; then
> + AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1)
> +fi
> +])
> +
> +dnl
> +dnl Type of struct rlimit fields: some systems (OSF/1, NetBSD, RISC/os 5.0)
> +dnl have a rlim_t, others (4.4BSD based systems) use quad_t, others use
> +dnl long and still others use int (HP-UX 9.01, SunOS 4.1.3). To simplify
> +dnl matters, this just checks for rlim_t, quad_t, or long.
> +dnl
> +AC_DEFUN([BASH_TYPE_RLIMIT],
> +[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>
> +#include <sys/resource.h>],
> +[rlim_t xxx;], bash_cv_type_rlimit=rlim_t,[
> +AC_TRY_RUN([
> +#include <sys/types.h>
> +#include <sys/time.h>
> +#include <sys/resource.h>
> +main()
> +{
> +#ifdef HAVE_QUAD_T
> + struct rlimit rl;
> + if (sizeof(rl.rlim_cur) == sizeof(quad_t))
> + exit(0);
> +#endif
> + exit(1);
> +}], bash_cv_type_rlimit=quad_t, bash_cv_type_rlimit=long,
> + [AC_MSG_WARN(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
> +AC_DEFINE(RLIMTYPE, quad_t)
> +elif test $bash_cv_type_rlimit = rlim_t; then
> +AC_DEFINE(RLIMTYPE, rlim_t)
> +fi
> +])
> +
> +AC_DEFUN([BASH_FUNC_LSTAT],
> +[dnl Cannot use AC_CHECK_FUNCS(lstat) because Linux defines lstat() as an
> +dnl inline function in <sys/stat.h>.
> +AC_CACHE_CHECK([for lstat], bash_cv_func_lstat,
> +[AC_TRY_LINK([
> +#include <sys/types.h>
> +#include <sys/stat.h>
> +],[ 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)
> +fi
> +])
> +
> +AC_DEFUN([BASH_FUNC_INET_ATON],
> +[
> +AC_CACHE_CHECK([for inet_aton], bash_cv_func_inet_aton,
> +[AC_TRY_LINK([
> +#include <sys/types.h>
> +#include <netinet/in.h>
> +#include <arpa/inet.h>
> +struct in_addr ap;], [ inet_aton("127.0.0.1", &ap); ],
> +bash_cv_func_inet_aton=yes, bash_cv_func_inet_aton=no)])
> +if test $bash_cv_func_inet_aton = yes; then
> + AC_DEFINE(HAVE_INET_ATON)
> +else
> + AC_LIBOBJ(inet_aton)
> +fi
> +])
> +
> +AC_DEFUN([BASH_FUNC_GETENV],
> +[AC_MSG_CHECKING(to see if getenv can be redefined)
> +AC_CACHE_VAL(bash_cv_getenv_redef,
> +[AC_TRY_RUN([
> +#ifdef HAVE_UNISTD_H
> +# include <unistd.h>
> +#endif
> +#ifndef __STDC__
> +# ifndef const
> +# define const
> +# endif
> +#endif
> +char *
> +getenv (name)
> +#if defined (__linux__) || defined (__bsdi__) || defined (convex)
> + const char *name;
> +#else
> + char const *name;
> +#endif /* !__linux__ && !__bsdi__ && !convex */
> +{
> +return "42";
> +}
> +main()
> +{
> +char *s;
> +/* The next allows this program to run, but does not allow bash to link
> + when it redefines getenv. I'm not really interested in figuring out
> + why not. */
> +#if defined (NeXT)
> +exit(1);
> +#endif
> +s = getenv("ABCDE");
> +exit(s == 0); /* force optimizer to leave getenv in */
> +}
> +], bash_cv_getenv_redef=yes, bash_cv_getenv_redef=no,
> + [AC_MSG_WARN(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)
> +fi
> +])
> +
> +# We should check for putenv before calling this
> +AC_DEFUN([BASH_FUNC_STD_PUTENV],
> +[
> +AC_REQUIRE([AC_HEADER_STDC])
> +AC_REQUIRE([AC_C_PROTOTYPES])
> +AC_CACHE_CHECK([for standard-conformant putenv declaration], bash_cv_std_putenv,
> +[AC_TRY_LINK([
> +#if STDC_HEADERS
> +#include <stdlib.h>
> +#include <stddef.h>
> +#endif
> +#ifndef __STDC__
> +# ifndef const
> +# define const
> +# endif
> +#endif
> +#ifdef PROTOTYPES
> +extern int putenv (char *);
> +#else
> +extern int putenv ();
> +#endif
> +],
> +[return (putenv == 0);],
> +bash_cv_std_putenv=yes, bash_cv_std_putenv=no
> +)])
> +if test $bash_cv_std_putenv = yes; then
> +AC_DEFINE(HAVE_STD_PUTENV)
> +fi
> +])
> +
> +# We should check for unsetenv before calling this
> +AC_DEFUN([BASH_FUNC_STD_UNSETENV],
> +[
> +AC_REQUIRE([AC_HEADER_STDC])
> +AC_REQUIRE([AC_C_PROTOTYPES])
> +AC_CACHE_CHECK([for standard-conformant unsetenv declaration], bash_cv_std_unsetenv,
> +[AC_TRY_LINK([
> +#if STDC_HEADERS
> +#include <stdlib.h>
> +#include <stddef.h>
> +#endif
> +#ifndef __STDC__
> +# ifndef const
> +# define const
> +# endif
> +#endif
> +#ifdef PROTOTYPES
> +extern int unsetenv (const char *);
> +#else
> +extern int unsetenv ();
> +#endif
> +],
> +[return (unsetenv == 0);],
> +bash_cv_std_unsetenv=yes, bash_cv_std_unsetenv=no
> +)])
> +if test $bash_cv_std_unsetenv = yes; then
> +AC_DEFINE(HAVE_STD_UNSETENV)
> +fi
> +])
> +
> +AC_DEFUN([BASH_FUNC_ULIMIT_MAXFDS],
> +[AC_MSG_CHECKING(whether ulimit can substitute for getdtablesize)
> +AC_CACHE_VAL(bash_cv_ulimit_maxfds,
> +[AC_TRY_RUN([
> +main()
> +{
> +long maxfds = ulimit(4, 0L);
> +exit (maxfds == -1L);
> +}
> +], bash_cv_ulimit_maxfds=yes, bash_cv_ulimit_maxfds=no,
> + [AC_MSG_WARN(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)
> +fi
> +])
> +
> +AC_DEFUN([BASH_FUNC_GETCWD],
> +[AC_MSG_CHECKING([if getcwd() calls popen()])
> +AC_CACHE_VAL(bash_cv_getcwd_calls_popen,
> +[AC_TRY_RUN([
> +#include <stdio.h>
> +#ifdef HAVE_UNISTD_H
> +#include <unistd.h>
> +#endif
> +
> +#ifndef __STDC__
> +#ifndef const
> +#define const
> +#endif
> +#endif
> +
> +int popen_called;
> +
> +FILE *
> +popen(command, type)
> + const char *command;
> + const char *type;
> +{
> + popen_called = 1;
> + return (FILE *)NULL;
> +}
> +
> +FILE *_popen(command, type)
> + const char *command;
> + const char *type;
> +{
> + return (popen (command, type));
> +}
> +
> +int
> +pclose(stream)
> +FILE *stream;
> +{
> + return 0;
> +}
> +
> +int
> +_pclose(stream)
> +FILE *stream;
> +{
> + return 0;
> +}
> +
> +main()
> +{
> + char lbuf[32];
> + popen_called = 0;
> + getcwd(lbuf, 32);
> + exit (popen_called);
> +}
> +], bash_cv_getcwd_calls_popen=no, bash_cv_getcwd_calls_popen=yes,
> + [AC_MSG_WARN(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)
> +AC_LIBOBJ(getcwd)
> +fi
> +])
> +
> +dnl
> +dnl This needs BASH_CHECK_SOCKLIB, but since that's not called on every
> +dnl system, we can't use AC_PREREQ
> +dnl
> +AC_DEFUN([BASH_FUNC_GETHOSTBYNAME],
> +[if test "X$bash_cv_have_gethostbyname" = "X"; then
> +_bash_needmsg=yes
> +else
> +AC_MSG_CHECKING(for gethostbyname in socket library)
> +_bash_needmsg=
> +fi
> +AC_CACHE_VAL(bash_cv_have_gethostbyname,
> +[AC_TRY_LINK([#include <netdb.h>],
> +[ struct hostent *hp;
> + hp = gethostbyname("localhost");
> +], bash_cv_have_gethostbyname=yes, bash_cv_have_gethostbyname=no)]
> +)
> +if test "X$_bash_needmsg" = Xyes; then
> + AC_MSG_CHECKING(for gethostbyname in socket library)
> +fi
> +AC_MSG_RESULT($bash_cv_have_gethostbyname)
> +if test "$bash_cv_have_gethostbyname" = yes; then
> +AC_DEFINE(HAVE_GETHOSTBYNAME)
> +fi
> +])
> +
> +AC_DEFUN([BASH_FUNC_FNMATCH_EXTMATCH],
> +[AC_MSG_CHECKING(if fnmatch does extended pattern matching with FNM_EXTMATCH)
> +AC_CACHE_VAL(bash_cv_fnm_extmatch,
> +[AC_TRY_RUN([
> +#include <fnmatch.h>
> +
> +main()
> +{
> +#ifdef FNM_EXTMATCH
> + exit (0);
> +#else
> + exit (1);
> +#endif
> +}
> +], bash_cv_fnm_extmatch=yes, bash_cv_fnm_extmatch=no,
> + [AC_MSG_WARN(cannot check FNM_EXTMATCH if cross compiling -- defaulting to no)
> + bash_cv_fnm_extmatch=no])
> +])
> +AC_MSG_RESULT($bash_cv_fnm_extmatch)
> +if test $bash_cv_fnm_extmatch = yes; then
> +AC_DEFINE(HAVE_LIBC_FNM_EXTMATCH)
> +fi
> +])
> +
> +AH_TEMPLATE([HAVE_POSIX_SIGSETJMP], [Define if we POSIX-style sigsetjmp/siglongjmp are available])
> +AC_DEFUN([BASH_FUNC_POSIX_SETJMP],
> +[AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
> +AC_MSG_CHECKING(for presence of POSIX-style sigsetjmp/siglongjmp)
> +AC_CACHE_VAL(bash_cv_func_sigsetjmp,
> +[AC_TRY_RUN([
> +#ifdef HAVE_UNISTD_H
> +#include <unistd.h>
> +#endif
> +#include <sys/types.h>
> +#include <signal.h>
> +#include <setjmp.h>
> +
> +main()
> +{
> +#if !defined (_POSIX_VERSION) || !defined (HAVE_POSIX_SIGNALS)
> +exit (1);
> +#else
> +
> +int code;
> +sigset_t set, oset;
> +sigjmp_buf xx;
> +
> +/* get the mask */
> +sigemptyset(&set);
> +sigemptyset(&oset);
> +sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &set);
> +sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &oset);
> +
> +/* save it */
> +code = sigsetjmp(xx, 1);
> +if (code)
> + exit(0); /* could get sigmask and compare to oset here. */
> +
> +/* change it */
> +sigaddset(&set, SIGINT);
> +sigprocmask(SIG_BLOCK, &set, (sigset_t *)NULL);
> +
> +/* and siglongjmp */
> +siglongjmp(xx, 10);
> +exit(1);
> +#endif
> +}], bash_cv_func_sigsetjmp=present, bash_cv_func_sigsetjmp=missing,
> + [AC_MSG_WARN(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)
> +fi
> +])
> +
> +AH_TEMPLATE([STRCOLL_BROKEN], [Define if strcoll is broken with respect to strcmp in the default locale.])
> +AC_DEFUN([BASH_FUNC_STRCOLL],
> +[
> +AC_MSG_CHECKING(whether or not strcoll and strcmp differ)
> +AC_CACHE_VAL(bash_cv_func_strcoll_broken,
> +[AC_TRY_RUN([
> +#include <stdio.h>
> +#if defined (HAVE_LOCALE_H)
> +#include <locale.h>
> +#endif
> +
> +main(c, v)
> +int c;
> +char *v[];
> +{
> + int r1, r2;
> + char *deflocale, *defcoll;
> +
> +#ifdef HAVE_SETLOCALE
> + deflocale = setlocale(LC_ALL, "");
> + defcoll = setlocale(LC_COLLATE, "");
> +#endif
> +
> +#ifdef HAVE_STRCOLL
> + /* These two values are taken from tests/glob-test. */
> + r1 = strcoll("abd", "aXd");
> +#else
> + r1 = 0;
> +#endif
> + r2 = strcmp("abd", "aXd");
> +
> + /* These two should both be greater than 0. It is permissible for
> + a system to return different values, as long as the sign is the
> + same. */
> +
> + /* Exit with 1 (failure) if these two values are both > 0, since
> + this tests whether strcoll(3) is broken with respect to strcmp(3)
> + in the default locale. */
> + exit (r1 > 0 && r2 > 0);
> +}
> +], bash_cv_func_strcoll_broken=yes, bash_cv_func_strcoll_broken=no,
> + [AC_MSG_WARN(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
> +])
> +
> +AC_DEFUN([BASH_FUNC_PRINTF_A_FORMAT],
> +[AC_MSG_CHECKING([for printf floating point output in hex notation])
> +AC_CACHE_VAL(bash_cv_printf_a_format,
> +[AC_TRY_RUN([
> +#include <stdio.h>
> +#include <string.h>
> +
> +int
> +main()
> +{
> + double y = 0.0;
> + char abuf[1024];
> +
> + sprintf(abuf, "%A", y);
> + exit(strchr(abuf, 'P') == (char *)0);
> +}
> +], bash_cv_printf_a_format=yes, bash_cv_printf_a_format=no,
> + [AC_MSG_WARN(cannot check printf if cross compiling -- defaulting to no)
> + bash_cv_printf_a_format=no]
> +)])
> +AC_MSG_RESULT($bash_cv_printf_a_format)
> +if test $bash_cv_printf_a_format = yes; then
> +AC_DEFINE(HAVE_PRINTF_A_FORMAT)
> +fi
> +])
> +
> +AC_DEFUN([BASH_STRUCT_TERMIOS_LDISC],
> +[
> +AC_CHECK_MEMBER(struct termios.c_line, AC_DEFINE(TERMIOS_LDISC), ,[
> +#include <sys/types.h>
> +#include <termios.h>
> +])
> +])
> +
> +AC_DEFUN([BASH_STRUCT_TERMIO_LDISC],
> +[
> +AC_CHECK_MEMBER(struct termio.c_line, AC_DEFINE(TERMIO_LDISC), ,[
> +#include <sys/types.h>
> +#include <termio.h>
> +])
> +])
> +
> +dnl
> +dnl Like AC_STRUCT_ST_BLOCKS, but doesn't muck with LIBOBJS
> +dnl
> +dnl sets bash_cv_struct_stat_st_blocks
> +dnl
> +dnl unused for now; we'll see how AC_CHECK_MEMBERS works
> +dnl
> +AC_DEFUN([BASH_STRUCT_ST_BLOCKS],
> +[
> +AC_MSG_CHECKING([for struct stat.st_blocks])
> +AC_CACHE_VAL(bash_cv_struct_stat_st_blocks,
> +[AC_TRY_COMPILE(
> +[
> +#include <sys/types.h>
> +#include <sys/stat.h>
> +],
> +[
> +main()
> +{
> +static struct stat a;
> +if (a.st_blocks) return 0;
> +return 0;
> +}
> +], bash_cv_struct_stat_st_blocks=yes, bash_cv_struct_stat_st_blocks=no)
> +])
> +AC_MSG_RESULT($bash_cv_struct_stat_st_blocks)
> +if test "$bash_cv_struct_stat_st_blocks" = "yes"; then
> +AC_DEFINE(HAVE_STRUCT_STAT_ST_BLOCKS)
> +fi
> +])
> +
> +AC_DEFUN([BASH_CHECK_LIB_TERMCAP],
> +[
> +if test "X$bash_cv_termcap_lib" = "X"; then
> +_bash_needmsg=yes
> +else
> +AC_MSG_CHECKING(which library has the termcap functions)
> +_bash_needmsg=
> +fi
> +AC_CACHE_VAL(bash_cv_termcap_lib,
> +[AC_CHECK_LIB(termcap, tgetent, bash_cv_termcap_lib=libtermcap,
> + [AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo,
> + [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses,
> + [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses,
> + bash_cv_termcap_lib=gnutermcap)])])])])
> +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 && test -z "$prefer_curses"; then
> +LDFLAGS="$LDFLAGS -L./lib/termcap"
> +TERMCAP_LIB="./lib/termcap/libtermcap.a"
> +TERMCAP_DEP="./lib/termcap/libtermcap.a"
> +elif test $bash_cv_termcap_lib = libtermcap && test -z "$prefer_curses"; then
> +TERMCAP_LIB=-ltermcap
> +TERMCAP_DEP=
> +elif test $bash_cv_termcap_lib = libtinfo; then
> +TERMCAP_LIB=-ltinfo
> +TERMCAP_DEP=
> +elif test $bash_cv_termcap_lib = libncurses; then
> +TERMCAP_LIB=-lncurses
> +TERMCAP_DEP=
> +else
> +TERMCAP_LIB=-lcurses
> +TERMCAP_DEP=
> +fi
> +])
> +
> +dnl
> +dnl Check for the presence of getpeername in libsocket.
> +dnl If libsocket is present, check for libnsl and add it to LIBS if
> +dnl it's there, since most systems with libsocket require linking
> +dnl with libnsl as well. This should only be called if getpeername
> +dnl was not found in libc.
> +dnl
> +dnl NOTE: IF WE FIND GETPEERNAME, WE ASSUME THAT WE HAVE BIND/CONNECT
> +dnl AS WELL
> +dnl
> +AC_DEFUN([BASH_CHECK_LIB_SOCKET],
> +[
> +if test "X$bash_cv_have_socklib" = "X"; then
> +_bash_needmsg=
> +else
> +AC_MSG_CHECKING(for socket library)
> +_bash_needmsg=yes
> +fi
> +AC_CACHE_VAL(bash_cv_have_socklib,
> +[AC_CHECK_LIB(socket, getpeername,
> + bash_cv_have_socklib=yes, bash_cv_have_socklib=no, -lnsl)])
> +if test "X$_bash_needmsg" = Xyes; then
> + AC_MSG_RESULT($bash_cv_have_socklib)
> + _bash_needmsg=
> +fi
> +if test $bash_cv_have_socklib = yes; then
> + # check for libnsl, add it to LIBS if present
> + if test "X$bash_cv_have_libnsl" = "X"; then
> + _bash_needmsg=
> + else
> + AC_MSG_CHECKING(for libnsl)
> + _bash_needmsg=yes
> + fi
> + AC_CACHE_VAL(bash_cv_have_libnsl,
> + [AC_CHECK_LIB(nsl, t_open,
> + bash_cv_have_libnsl=yes, bash_cv_have_libnsl=no)])
> + if test "X$_bash_needmsg" = Xyes; then
> + AC_MSG_RESULT($bash_cv_have_libnsl)
> + _bash_needmsg=
> + fi
> + if test $bash_cv_have_libnsl = yes; then
> + LIBS="-lsocket -lnsl $LIBS"
> + else
> + LIBS="-lsocket $LIBS"
> + fi
> + AC_DEFINE(HAVE_LIBSOCKET)
> + AC_DEFINE(HAVE_GETPEERNAME)
> +fi
> +])
> +
> +AH_TEMPLATE([STRUCT_DIRENT_HAS_D_INO], [Define if struct dirent has a d_ino member])
> +AC_DEFUN([BASH_STRUCT_DIRENT_D_INO],
> +[AC_REQUIRE([AC_HEADER_DIRENT])
> +AC_MSG_CHECKING(if struct dirent has a d_ino member)
> +AC_CACHE_VAL(bash_cv_dirent_has_dino,
> +[AC_TRY_COMPILE([
> +#include <stdio.h>
> +#include <sys/types.h>
> +#ifdef HAVE_UNISTD_H
> +# include <unistd.h>
> +#endif /* HAVE_UNISTD_H */
> +#if defined(HAVE_DIRENT_H)
> +# include <dirent.h>
> +#else
> +# define dirent direct
> +# ifdef HAVE_SYS_NDIR_H
> +# include <sys/ndir.h>
> +# endif /* SYSNDIR */
> +# ifdef HAVE_SYS_DIR_H
> +# include <sys/dir.h>
> +# endif /* SYSDIR */
> +# ifdef HAVE_NDIR_H
> +# include <ndir.h>
> +# endif
> +#endif /* HAVE_DIRENT_H */
> +],[
> +struct dirent d; int z; z = d.d_ino;
> +], bash_cv_dirent_has_dino=yes, bash_cv_dirent_has_dino=no)])
> +AC_MSG_RESULT($bash_cv_dirent_has_dino)
> +if test $bash_cv_dirent_has_dino = yes; then
> +AC_DEFINE(STRUCT_DIRENT_HAS_D_INO)
> +fi
> +])
> +
> +AH_TEMPLATE([STRUCT_DIRENT_HAS_D_FILENO], [Define if struct dirent has a d_fileno member])
> +AC_DEFUN([BASH_STRUCT_DIRENT_D_FILENO],
> +[AC_REQUIRE([AC_HEADER_DIRENT])
> +AC_MSG_CHECKING(if struct dirent has a d_fileno member)
> +AC_CACHE_VAL(bash_cv_dirent_has_d_fileno,
> +[AC_TRY_COMPILE([
> +#include <stdio.h>
> +#include <sys/types.h>
> +#ifdef HAVE_UNISTD_H
> +# include <unistd.h>
> +#endif /* HAVE_UNISTD_H */
> +#if defined(HAVE_DIRENT_H)
> +# include <dirent.h>
> +#else
> +# define dirent direct
> +# ifdef HAVE_SYS_NDIR_H
> +# include <sys/ndir.h>
> +# endif /* SYSNDIR */
> +# ifdef HAVE_SYS_DIR_H
> +# include <sys/dir.h>
> +# endif /* SYSDIR */
> +# ifdef HAVE_NDIR_H
> +# include <ndir.h>
> +# endif
> +#endif /* HAVE_DIRENT_H */
> +],[
> +struct dirent d; int z; z = d.d_fileno;
> +], bash_cv_dirent_has_d_fileno=yes, bash_cv_dirent_has_d_fileno=no)])
> +AC_MSG_RESULT($bash_cv_dirent_has_d_fileno)
> +if test $bash_cv_dirent_has_d_fileno = yes; then
> +AC_DEFINE(STRUCT_DIRENT_HAS_D_FILENO)
> +fi
> +])
> +
> +AC_DEFUN([BASH_STRUCT_TIMEVAL],
> +[AC_MSG_CHECKING(for struct timeval in sys/time.h and time.h)
> +AC_CACHE_VAL(bash_cv_struct_timeval,
> +[
> +AC_EGREP_HEADER(struct timeval, sys/time.h,
> + bash_cv_struct_timeval=yes,
> + AC_EGREP_HEADER(struct timeval, time.h,
> + bash_cv_struct_timeval=yes,
> + bash_cv_struct_timeval=no))
> +])
> +AC_MSG_RESULT($bash_cv_struct_timeval)
> +if test $bash_cv_struct_timeval = yes; then
> + AC_DEFINE(HAVE_TIMEVAL)
> +fi
> +])
> +
> +AH_TEMPLATE([STRUCT_WINSIZE_IN_SYS_IOCTL], [Define if struct winsize is in sys/ioctl.h])
> +AH_TEMPLATE([STRUCT_WINSIZE_IN_TERMIOS], [Define if struct winsize is in termios.h])
> +AC_DEFUN([BASH_STRUCT_WINSIZE],
> +[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_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
> +])
> +
> +dnl Check type of signal routines (posix, 4.2bsd, 4.1bsd or v7)
> +AH_TEMPLATE([HAVE_POSIX_SIGNALS], [Define if we have the POSIX signal routines])
> +AH_TEMPLATE([HAVE_BSD_SIGNALS], [Define if we have the BSD signal routines])
> +AH_TEMPLATE([HAVE_USG_SIGHOLD], [Define if we have the USG signal routines])
> +AC_DEFUN([BASH_SYS_SIGNAL_VINTAGE],
> +[AC_REQUIRE([AC_TYPE_SIGNAL])
> +AC_MSG_CHECKING(for type of signal functions)
> +AC_CACHE_VAL(bash_cv_signal_vintage,
> +[
> + AC_MSG_WARN([checking for posix...])
> + AC_TRY_LINK([#include <signal.h>],[
> + sigset_t ss;
> + struct sigaction sa;
> + sigemptyset(&ss); sigsuspend(&ss);
> + sigaction(SIGINT, &sa, (struct sigaction *) 0);
> + sigprocmask(SIG_BLOCK, &ss, (sigset_t *) 0);
> + ], bash_cv_signal_vintage="posix",
> + [
> + AC_MSG_WARN([checking for 4.2bsd...])
> + AC_TRY_LINK([#include <signal.h>], [
> + int mask = sigmask(SIGINT);
> + sigsetmask(mask); sigblock(mask); sigpause(mask);
> + ], bash_cv_signal_vintage="4.2bsd",
> + [
> + AC_MSG_WARN([checking for svr3...])
> + AC_TRY_LINK([
> + #include <signal.h>
> + RETSIGTYPE foo() { }], [
> + int mask = sigmask(SIGINT);
> + sigset(SIGINT, foo); sigrelse(SIGINT);
> + sighold(SIGINT); sigpause(SIGINT);
> + ], bash_cv_signal_vintage="svr3", bash_cv_signal_vintage="v7"
> + )]
> + )]
> +)
> +])
> +AC_MSG_RESULT($bash_cv_signal_vintage)
> +if test "$bash_cv_signal_vintage" = "posix"; then
> +AC_DEFINE(HAVE_POSIX_SIGNALS)
> +elif test "$bash_cv_signal_vintage" = "4.2bsd"; then
> +AC_DEFINE(HAVE_BSD_SIGNALS)
> +elif test "$bash_cv_signal_vintage" = "svr3"; then
> +AC_DEFINE(HAVE_USG_SIGHOLD)
> +fi
> +])
> +
> +dnl Check if the pgrp of setpgrp() can't be the pid of a zombie process.
> +AC_DEFUN([BASH_SYS_PGRP_SYNC],
> +[AC_REQUIRE([AC_FUNC_GETPGRP])
> +AC_MSG_CHECKING(whether pgrps need synchronization)
> +AC_CACHE_VAL(bash_cv_pgrp_pipe,
> +[AC_TRY_RUN([
> +#ifdef HAVE_UNISTD_H
> +# include <unistd.h>
> +#endif
> +main()
> +{
> +# ifdef GETPGRP_VOID
> +# define getpgID() getpgrp()
> +# else
> +# define getpgID() getpgrp(0)
> +# define setpgid(x,y) setpgrp(x,y)
> +# endif
> + int pid1, pid2, fds[2];
> + int status;
> + char ok;
> +
> + switch (pid1 = fork()) {
> + case -1:
> + exit(1);
> + case 0:
> + setpgid(0, getpid());
> + exit(0);
> + }
> + setpgid(pid1, pid1);
> +
> + sleep(2); /* let first child die */
> +
> + if (pipe(fds) < 0)
> + exit(2);
> +
> + switch (pid2 = fork()) {
> + case -1:
> + exit(3);
> + case 0:
> + setpgid(0, pid1);
> + ok = getpgID() == pid1;
> + write(fds[1], &ok, 1);
> + exit(0);
> + }
> + setpgid(pid2, pid1);
> +
> + close(fds[1]);
> + if (read(fds[0], &ok, 1) != 1)
> + exit(4);
> + wait(&status);
> + wait(&status);
> + exit(ok ? 0 : 5);
> +}
> +], bash_cv_pgrp_pipe=no,bash_cv_pgrp_pipe=yes,
> + [AC_MSG_WARN(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
> +AC_DEFINE(PGRP_PIPE)
> +fi
> +])
> +
> +AH_TEMPLATE([MUST_REINSTALL_SIGHANDLERS], [Define if signal handlers must be reinstalled when invoked.])
> +AC_DEFUN([BASH_SYS_REINSTALL_SIGHANDLERS],
> +[AC_REQUIRE([AC_TYPE_SIGNAL])
> +AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
> +AC_MSG_CHECKING([if signal handlers must be reinstalled when invoked])
> +AC_CACHE_VAL(bash_cv_must_reinstall_sighandlers,
> +[AC_TRY_RUN([
> +#include <signal.h>
> +#ifdef HAVE_UNISTD_H
> +#include <unistd.h>
> +#endif
> +
> +typedef RETSIGTYPE sigfunc();
> +
> +int nsigint;
> +
> +#ifdef HAVE_POSIX_SIGNALS
> +sigfunc *
> +set_signal_handler(sig, handler)
> + int sig;
> + sigfunc *handler;
> +{
> + struct sigaction act, oact;
> + act.sa_handler = handler;
> + act.sa_flags = 0;
> + sigemptyset (&act.sa_mask);
> + sigemptyset (&oact.sa_mask);
> + sigaction (sig, &act, &oact);
> + return (oact.sa_handler);
> +}
> +#else
> +#define set_signal_handler(s, h) signal(s, h)
> +#endif
> +
> +RETSIGTYPE
> +sigint(s)
> +int s;
> +{
> + nsigint++;
> +}
> +
> +main()
> +{
> + nsigint = 0;
> + set_signal_handler(SIGINT, sigint);
> + kill((int)getpid(), SIGINT);
> + kill((int)getpid(), SIGINT);
> + exit(nsigint != 2);
> +}
> +], bash_cv_must_reinstall_sighandlers=no, bash_cv_must_reinstall_sighandlers=yes,
> + [AC_MSG_WARN(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)
> +fi
> +])
> +
> +dnl check that some necessary job control definitions are present
> +AC_DEFUN([BASH_SYS_JOB_CONTROL_MISSING],
> +[AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
> +AC_MSG_CHECKING(for presence of necessary job control definitions)
> +AC_CACHE_VAL(bash_cv_job_control_missing,
> +[AC_TRY_RUN([
> +#include <sys/types.h>
> +#ifdef HAVE_SYS_WAIT_H
> +#include <sys/wait.h>
> +#endif
> +#ifdef HAVE_UNISTD_H
> +#include <unistd.h>
> +#endif
> +#include <signal.h>
> +
> +/* Add more tests in here as appropriate. */
> +main()
> +{
> +/* signal type */
> +#if !defined (HAVE_POSIX_SIGNALS) && !defined (HAVE_BSD_SIGNALS)
> +exit(1);
> +#endif
> +
> +/* signals and tty control. */
> +#if !defined (SIGTSTP) || !defined (SIGSTOP) || !defined (SIGCONT)
> +exit (1);
> +#endif
> +
> +/* process control */
> +#if !defined (WNOHANG) || !defined (WUNTRACED)
> +exit(1);
> +#endif
> +
> +/* Posix systems have tcgetpgrp and waitpid. */
> +#if defined (_POSIX_VERSION) && !defined (HAVE_TCGETPGRP)
> +exit(1);
> +#endif
> +
> +#if defined (_POSIX_VERSION) && !defined (HAVE_WAITPID)
> +exit(1);
> +#endif
> +
> +/* Other systems have TIOCSPGRP/TIOCGPRGP and wait3. */
> +#if !defined (_POSIX_VERSION) && !defined (HAVE_WAIT3)
> +exit(1);
> +#endif
> +
> +exit(0);
> +}], bash_cv_job_control_missing=present, bash_cv_job_control_missing=missing,
> + [AC_MSG_WARN(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)
> +fi
> +])
> +
> +dnl check whether named pipes are present
> +dnl this requires a previous check for mkfifo, but that is awkward to specify
> +AC_DEFUN([BASH_SYS_NAMED_PIPES],
> +[AC_MSG_CHECKING(for presence of named pipes)
> +AC_CACHE_VAL(bash_cv_sys_named_pipes,
> +[AC_TRY_RUN([
> +#include <sys/types.h>
> +#include <sys/stat.h>
> +#ifdef HAVE_UNISTD_H
> +#include <unistd.h>
> +#endif
> +
> +/* Add more tests in here as appropriate. */
> +main()
> +{
> +int fd, err;
> +
> +#if defined (HAVE_MKFIFO)
> +exit (0);
> +#endif
> +
> +#if !defined (S_IFIFO) && (defined (_POSIX_VERSION) && !defined (S_ISFIFO))
> +exit (1);
> +#endif
> +
> +#if defined (NeXT)
> +exit (1);
> +#endif
> +err = mkdir("/tmp/bash-aclocal", 0700);
> +if (err < 0) {
> + perror ("mkdir");
> + exit(1);
> +}
> +fd = mknod ("/tmp/bash-aclocal/sh-np-autoconf", 0666 | S_IFIFO, 0);
> +if (fd == -1) {
> + rmdir ("/tmp/bash-aclocal");
> + exit (1);
> +}
> +close(fd);
> +unlink ("/tmp/bash-aclocal/sh-np-autoconf");
> +rmdir ("/tmp/bash-aclocal");
> +exit(0);
> +}], bash_cv_sys_named_pipes=present, bash_cv_sys_named_pipes=missing,
> + [AC_MSG_WARN(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)
> +fi
> +])
> +
> +AC_DEFUN([BASH_SYS_DEFAULT_MAIL_DIR],
> +[AC_MSG_CHECKING(for default mail directory)
> +AC_CACHE_VAL(bash_cv_mail_dir,
> +[if test -d /var/mail; then
> + bash_cv_mail_dir=/var/mail
> + elif test -d /var/spool/mail; then
> + bash_cv_mail_dir=/var/spool/mail
> + elif test -d /usr/mail; then
> + bash_cv_mail_dir=/usr/mail
> + elif test -d /usr/spool/mail; then
> + bash_cv_mail_dir=/usr/spool/mail
> + else
> + bash_cv_mail_dir=unknown
> + fi
> +])
> +AC_MSG_RESULT($bash_cv_mail_dir)
> +AC_DEFINE_UNQUOTED(DEFAULT_MAIL_DIRECTORY, "$bash_cv_mail_dir")
> +])
> +
> +AC_DEFUN([BASH_HAVE_TIOCGWINSZ],
> +[AC_MSG_CHECKING(for TIOCGWINSZ in sys/ioctl.h)
> +AC_CACHE_VAL(bash_cv_tiocgwinsz_in_ioctl,
> +[AC_TRY_COMPILE([#include <sys/types.h>
> +#include <sys/ioctl.h>], [int x = TIOCGWINSZ;],
> + bash_cv_tiocgwinsz_in_ioctl=yes,bash_cv_tiocgwinsz_in_ioctl=no)])
> +AC_MSG_RESULT($bash_cv_tiocgwinsz_in_ioctl)
> +if test $bash_cv_tiocgwinsz_in_ioctl = yes; then
> +AC_DEFINE(GWINSZ_IN_SYS_IOCTL)
> +fi
> +])
> +
> +AH_TEMPLATE([TIOCSTAT_IN_SYS_IOCTL], [Define if TIOCSTAT is in sys/ioctl.h])
> +AC_DEFUN([BASH_HAVE_TIOCSTAT],
> +[AC_MSG_CHECKING(for TIOCSTAT in sys/ioctl.h)
> +AC_CACHE_VAL(bash_cv_tiocstat_in_ioctl,
> +[AC_TRY_COMPILE([#include <sys/types.h>
> +#include <sys/ioctl.h>], [int x = TIOCSTAT;],
> + bash_cv_tiocstat_in_ioctl=yes,bash_cv_tiocstat_in_ioctl=no)])
> +AC_MSG_RESULT($bash_cv_tiocstat_in_ioctl)
> +if test $bash_cv_tiocstat_in_ioctl = yes; then
> +AC_DEFINE(TIOCSTAT_IN_SYS_IOCTL)
> +fi
> +])
> +
> +AH_TEMPLATE([FIONREAD_IN_SYS_IOCTL], [Define if FIONREAD is in sys/ioctl.h])
> +AC_DEFUN([BASH_HAVE_FIONREAD],
> +[AC_MSG_CHECKING(for FIONREAD in sys/ioctl.h)
> +AC_CACHE_VAL(bash_cv_fionread_in_ioctl,
> +[AC_TRY_COMPILE([#include <sys/types.h>
> +#include <sys/ioctl.h>], [int x = FIONREAD;],
> + bash_cv_fionread_in_ioctl=yes,bash_cv_fionread_in_ioctl=no)])
> +AC_MSG_RESULT($bash_cv_fionread_in_ioctl)
> +if test $bash_cv_fionread_in_ioctl = yes; then
> +AC_DEFINE(FIONREAD_IN_SYS_IOCTL)
> +fi
> +])
> +
> +dnl
> +dnl See if speed_t is declared in <sys/types.h>. Some versions of linux
> +dnl require a definition of speed_t each time <termcap.h> is included,
> +dnl but you can only get speed_t if you include <termios.h> (on some
> +dnl versions) or <sys/types.h> (on others).
> +dnl
> +AH_TEMPLATE([SPEED_T_IN_SYS_TYPES], [Define if speed_t is in sys/types.h])
> +AC_DEFUN([BASH_CHECK_SPEED_T],
> +[AC_MSG_CHECKING(for speed_t in sys/types.h)
> +AC_CACHE_VAL(bash_cv_speed_t_in_sys_types,
> +[AC_TRY_COMPILE([#include <sys/types.h>], [speed_t x;],
> + bash_cv_speed_t_in_sys_types=yes,bash_cv_speed_t_in_sys_types=no)])
> +AC_MSG_RESULT($bash_cv_speed_t_in_sys_types)
> +if test $bash_cv_speed_t_in_sys_types = yes; then
> +AC_DEFINE(SPEED_T_IN_SYS_TYPES)
> +fi
> +])
> +
> +AH_TEMPLATE([HAVE_GETPW_DECLS], [Define if getpw functions are declared in pwd.h])
> +AC_DEFUN([BASH_CHECK_GETPW_FUNCS],
> +[AC_MSG_CHECKING(whether getpw functions are declared in pwd.h)
> +AC_CACHE_VAL(bash_cv_getpw_declared,
> +[AC_EGREP_CPP(getpwuid,
> +[
> +#include <sys/types.h>
> +#ifdef HAVE_UNISTD_H
> +# include <unistd.h>
> +#endif
> +#include <pwd.h>
> +],
> +bash_cv_getpw_declared=yes,bash_cv_getpw_declared=no)])
> +AC_MSG_RESULT($bash_cv_getpw_declared)
> +if test $bash_cv_getpw_declared = yes; then
> +AC_DEFINE(HAVE_GETPW_DECLS)
> +fi
> +])
> +
> +AC_DEFUN([BASH_CHECK_DEV_FD],
> +[AC_MSG_CHECKING(whether /dev/fd is available)
> +AC_CACHE_VAL(bash_cv_dev_fd,
> +[if test -d /dev/fd && test -r /dev/fd/0; then
> + bash_cv_dev_fd=standard
> + elif test -d /proc/self/fd && test -r /proc/self/fd/0; then
> + bash_cv_dev_fd=whacky
> + else
> + bash_cv_dev_fd=absent
> + fi
> +])
> +AC_MSG_RESULT($bash_cv_dev_fd)
> +if test $bash_cv_dev_fd = "standard"; then
> + AC_DEFINE(HAVE_DEV_FD)
> + AC_DEFINE(DEV_FD_PREFIX, "/dev/fd/")
> +elif test $bash_cv_dev_fd = "whacky"; then
> + AC_DEFINE(HAVE_DEV_FD)
> + AC_DEFINE(DEV_FD_PREFIX, "/proc/self/fd/")
> +fi
> +])
> +
> +AC_DEFUN([BASH_CHECK_DEV_STDIN],
> +[AC_MSG_CHECKING(whether /dev/stdin stdout stderr are available)
> +AC_CACHE_VAL(bash_cv_dev_stdin,
> +[if test -d /dev/fd && test -r /dev/stdin; then
> + bash_cv_dev_stdin=present
> + elif test -d /proc/self/fd && test -r /dev/stdin; then
> + bash_cv_dev_stdin=present
> + else
> + bash_cv_dev_stdin=absent
> + fi
> +])
> +AC_MSG_RESULT($bash_cv_dev_stdin)
> +if test $bash_cv_dev_stdin = "present"; then
> + AC_DEFINE(HAVE_DEV_STDIN)
> +fi
> +])
> +
> +dnl
> +dnl Check if HPUX needs _KERNEL defined for RLIMIT_* definitions
> +dnl
> +AC_DEFUN([BASH_CHECK_KERNEL_RLIMIT],
> +[AC_MSG_CHECKING([whether $host_os needs _KERNEL for RLIMIT defines])
> +AC_CACHE_VAL(bash_cv_kernel_rlimit,
> +[AC_TRY_COMPILE([
> +#include <sys/types.h>
> +#include <sys/resource.h>
> +],
> +[
> + 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
> +],
> +[
> + int f;
> + f = RLIMIT_DATA;
> +], 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
> +AC_DEFINE(RLIMIT_NEEDS_KERNEL)
> +fi
> +])
> +
> +dnl
> +dnl Check for 64-bit off_t -- used for malloc alignment
> +dnl
> +dnl C does not allow duplicate case labels, so the compile will fail if
> +dnl sizeof(off_t) is > 4.
> +dnl
> +AC_DEFUN([BASH_CHECK_OFF_T_64],
> +[AC_CACHE_CHECK(for 64-bit off_t, bash_cv_off_t_64,
> +AC_TRY_COMPILE([
> +#ifdef HAVE_UNISTD_H
> +#include <unistd.h>
> +#endif
> +#include <sys/types.h>
> +],[
> +switch (0) case 0: case (sizeof (off_t) <= 4):;
> +], bash_cv_off_t_64=no, bash_cv_off_t_64=yes))
> +if test $bash_cv_off_t_64 = yes; then
> + AC_DEFINE(HAVE_OFF_T_64)
> +fi])
> +
> +AC_DEFUN([BASH_CHECK_RTSIGS],
> +[AC_MSG_CHECKING(for unusable real-time signals due to large values)
> +AC_CACHE_VAL(bash_cv_unusable_rtsigs,
> +[AC_TRY_RUN([
> +#include <sys/types.h>
> +#include <signal.h>
> +
> +#ifndef NSIG
> +# define NSIG 64
> +#endif
> +
> +main ()
> +{
> + int n_sigs = 2 * NSIG;
> +#ifdef SIGRTMIN
> + int rtmin = SIGRTMIN;
> +#else
> + int rtmin = 0;
> +#endif
> +
> + exit(rtmin < n_sigs);
> +}], bash_cv_unusable_rtsigs=yes, bash_cv_unusable_rtsigs=no,
> + [AC_MSG_WARN(cannot check real-time signals if cross compiling -- defaulting to yes)
> + bash_cv_unusable_rtsigs=yes]
> +)])
> +AC_MSG_RESULT($bash_cv_unusable_rtsigs)
> +if test $bash_cv_unusable_rtsigs = yes; then
> +AC_DEFINE(UNUSABLE_RT_SIGNALS)
> +fi
> +])
> +
> +dnl
> +dnl check for availability of multibyte characters and functions
> +dnl
> +AH_TEMPLATE([HAVE_MBSRTOWCS], [Define if we have the mbsrtowcs function])
> +AH_TEMPLATE([HAVE_WCWIDTH], [Define if we have the wcwidth function])
> +AH_TEMPLATE([HAVE_MBSTATE_T], [Define if we have mbstate_t])
> +AH_TEMPLATE([HAVE_LANGINFO_CODESET], [Define if we have nl_langinfo and CODESET])
> +AC_DEFUN([BASH_CHECK_MULTIBYTE],
> +[
> +AC_CHECK_HEADERS(wctype.h)
> +AC_CHECK_HEADERS(wchar.h)
> +AC_CHECK_HEADERS(langinfo.h)
> +
> +AC_CHECK_FUNC(mbsrtowcs, AC_DEFINE(HAVE_MBSRTOWCS))
> +AC_CHECK_FUNC(wcwidth, AC_DEFINE(HAVE_WCWIDTH))
> +
> +AC_CACHE_CHECK([for mbstate_t], bash_cv_have_mbstate_t,
> +[AC_TRY_RUN([
> +#include <wchar.h>
> +int
> +main ()
> +{
> + mbstate_t ps;
> + return 0;
> +}], bash_cv_have_mbstate_t=yes, bash_cv_have_mbstate_t=no)])
> +if test $bash_cv_have_mbstate_t = yes; then
> + AC_DEFINE(HAVE_MBSTATE_T)
> +fi
> +
> +AC_CACHE_CHECK([for nl_langinfo and CODESET], bash_cv_langinfo_codeset,
> +[AC_TRY_LINK(
> +[#include <langinfo.h>],
> +[char* cs = nl_langinfo(CODESET);],
> +bash_cv_langinfo_codeset=yes, bash_cv_langinfo_codeset=no)])
> +if test $bash_cv_langinfo_codeset = yes; then
> + AC_DEFINE(HAVE_LANGINFO_CODESET)
> +fi
> +
> +])
> +
> +dnl need: prefix exec_prefix libdir includedir CC TERMCAP_LIB
> +dnl require:
> +dnl AC_PROG_CC
> +dnl BASH_CHECK_LIB_TERMCAP
> +
> +AC_DEFUN([RL_LIB_READLINE_VERSION],
> +[
> +AC_REQUIRE([BASH_CHECK_LIB_TERMCAP])
> +
> +AC_MSG_CHECKING([version of installed readline library])
> +
> +# What a pain in the ass this is.
> +
> +# save cpp and ld options
> +_save_CFLAGS="$CFLAGS"
> +_save_LDFLAGS="$LDFLAGS"
> +_save_LIBS="$LIBS"
> +
> +# Don't set ac_cv_rl_prefix if the caller has already assigned a value. This
> +# allows the caller to do something like $_rl_prefix=$withval if the user
> +# specifies --with-installed-readline=PREFIX as an argument to configure
> +
> +if test -z "$ac_cv_rl_prefix"; then
> +test "x$prefix" = xNONE && ac_cv_rl_prefix=$ac_default_prefix || ac_cv_rl_prefix=${prefix}
> +fi
> +
> +eval ac_cv_rl_includedir=${ac_cv_rl_prefix}/include
> +eval ac_cv_rl_libdir=${ac_cv_rl_prefix}/lib
> +
> +LIBS="$LIBS -lreadline ${TERMCAP_LIB}"
> +CFLAGS="$CFLAGS -I${ac_cv_rl_includedir}"
> +LDFLAGS="$LDFLAGS -L${ac_cv_rl_libdir}"
> +
> +AC_TRY_RUN([
> +#include <stdio.h>
> +#include <readline/readline.h>
> +
> +main()
> +{
> + FILE *fp;
> + fp = fopen("conftest.rlv", "w");
> + if (fp == 0) exit(1);
> + fprintf(fp, "%s\n", rl_library_version ? rl_library_version : "0.0");
> + fclose(fp);
> + exit(0);
> +}
> +],
> +ac_cv_rl_version=`cat conftest.rlv`,
> +ac_cv_rl_version='0.0',
> +ac_cv_rl_version='4.2')
> +
> +CFLAGS="$_save_CFLAGS"
> +LDFLAGS="$_save_LDFLAGS"
> +LIBS="$_save_LIBS"
> +
> +RL_MAJOR=0
> +RL_MINOR=0
> +
> +# (
> +case "$ac_cv_rl_version" in
> +2*|3*|4*|5*|6*|7*|8*|9*)
> + RL_MAJOR=`echo $ac_cv_rl_version | sed 's:\..*$::'`
> + RL_MINOR=`echo $ac_cv_rl_version | sed -e 's:^.*\.::' -e 's:[[a-zA-Z]]*$::'`
> + ;;
> +esac
> +
> +# (((
> +case $RL_MAJOR in
> +[[0-9][0-9]]) _RL_MAJOR=$RL_MAJOR ;;
> +[[0-9]]) _RL_MAJOR=0$RL_MAJOR ;;
> +*) _RL_MAJOR=00 ;;
> +esac
> +
> +# (((
> +case $RL_MINOR in
> +[[0-9][0-9]]) _RL_MINOR=$RL_MINOR ;;
> +[[0-9]]) _RL_MINOR=0$RL_MINOR ;;
> +*) _RL_MINOR=00 ;;
> +esac
> +
> +RL_VERSION="0x${_RL_MAJOR}${_RL_MINOR}"
> +
> +# Readline versions greater than 4.2 have these defines in readline.h
> +
> +if test $ac_cv_rl_version = '0.0' ; then
> + AC_MSG_WARN([Could not test version of installed readline library.])
> +elif test $RL_MAJOR -gt 4 || { test $RL_MAJOR = 4 && test $RL_MINOR -gt 2 ; } ; then
> + # set these for use by the caller
> + RL_PREFIX=$ac_cv_rl_prefix
> + RL_LIBDIR=$ac_cv_rl_libdir
> + RL_INCLUDEDIR=$ac_cv_rl_includedir
> + AC_MSG_RESULT($ac_cv_rl_version)
> +else
> +
> +AC_DEFINE_UNQUOTED(RL_READLINE_VERSION, $RL_VERSION, [encoded version of the installed readline library])
> +AC_DEFINE_UNQUOTED(RL_VERSION_MAJOR, $RL_MAJOR, [major version of installed readline library])
> +AC_DEFINE_UNQUOTED(RL_VERSION_MINOR, $RL_MINOR, [minor version of installed readline library])
> +
> +AC_SUBST(RL_VERSION)
> +AC_SUBST(RL_MAJOR)
> +AC_SUBST(RL_MINOR)
> +
> +# set these for use by the caller
> +RL_PREFIX=$ac_cv_rl_prefix
> +RL_LIBDIR=$ac_cv_rl_libdir
> +RL_INCLUDEDIR=$ac_cv_rl_includedir
> +
> +AC_MSG_RESULT($ac_cv_rl_version)
> +
> +fi
> +])
> +
> +AC_DEFUN(BASH_FUNC_CTYPE_NONASCII,
> +[
> +AC_MSG_CHECKING(whether the ctype macros accept non-ascii characters)
> +AC_CACHE_VAL(bash_cv_func_ctype_nonascii,
> +[AC_TRY_RUN([
> +#ifdef HAVE_LOCALE_H
> +#include <locale.h>
> +#endif
> +#include <stdio.h>
> +#include <ctype.h>
> +
> +main(c, v)
> +int c;
> +char *v[];
> +{
> + char *deflocale;
> + unsigned char x;
> + int r1, r2;
> +
> +#ifdef HAVE_SETLOCALE
> + /* We take a shot here. If that locale is not known, try the
> + system default. We try this one because '\342' (226) is
> + known to be a printable character in that locale. */
> + deflocale = setlocale(LC_ALL, "en_US.ISO8859-1");
> + if (deflocale == 0)
> + deflocale = setlocale(LC_ALL, "");
> +#endif
> +
> + x = '\342';
> + r1 = isprint(x);
> + x -= 128;
> + r2 = isprint(x);
> + exit (r1 == 0 || r2 == 0);
> +}
> +], bash_cv_func_ctype_nonascii=yes, bash_cv_func_ctype_nonascii=no,
> + [AC_MSG_WARN(cannot check ctype macros if cross compiling -- defaulting to no)
> + bash_cv_func_ctype_nonascii=no]
> +)])
> +AC_MSG_RESULT($bash_cv_func_ctype_nonascii)
> +if test $bash_cv_func_ctype_nonascii = yes; then
> +AC_DEFINE(CTYPE_NON_ASCII)
> +fi
> +])
> +
> +AC_DEFUN(BASH_TYPE_SIG_ATOMIC_T,
> +[AC_CACHE_CHECK([for sig_atomic_t in signal.h], ac_cv_have_sig_atomic_t,
> +[AC_TRY_LINK([
> +#include <signal.h>
> +],[ sig_atomic_t x; ],
> +ac_cv_have_sig_atomic_t=yes, ac_cv_have_sig_atomic_t=no)])
> +if test "$ac_cv_have_sig_atomic_t" = "no"
> +then
> + AC_CHECK_TYPE(sig_atomic_t,int)
> +fi
> +])
> diff --git a/meta/recipes-core/readline/readline_6.2.bb b/meta/recipes-core/readline/readline_6.2.bb
> index fda01a4..09c4908 100644
> --- a/meta/recipes-core/readline/readline_6.2.bb
> +++ b/meta/recipes-core/readline/readline_6.2.bb
> @@ -1,6 +1,6 @@
> require readline.inc
>
> -PR = "r2"
> +PR = "r3"
>
> SRC_URI[md5sum] = "67948acb2ca081f23359d0256e9a271c"
> SRC_URI[sha256sum] = "79a696070a058c233c72dd6ac697021cc64abd5ed51e59db867d66d196a89381"
>
More information about the Openembedded-core
mailing list