summaryrefslogtreecommitdiff
path: root/bash
diff options
context:
space:
mode:
authorChris Larson <clarson@kergoth.com>2004-07-26 22:46:39 +0000
committerChris Larson <clarson@kergoth.com>2004-07-26 22:46:39 +0000
commit64a0856fccfadaa5c175558f8444c1e748526b19 (patch)
tree41aabbddd4340bab9f7af6734eb865be42b7abc1 /bash
parent3eb6f4614079df0b36b54164d6d6bc34ca7ce9ee (diff)
Merge openembedded@openembedded.bkbits.net:packages
into handhelds.org:/home/kergoth/code/packages 2004/07/26 17:45:47-05:00 handhelds.org!kergoth Update bash to fix the setting of some of the _FOR_BUILD variables, which unborks my mipsel build. BKrev: 410589cflf64m_9euIr2obnhe64vHg
Diffstat (limited to 'bash')
-rw-r--r--bash/bash-2.05b/autofoo.patch1994
1 files changed, 1994 insertions, 0 deletions
diff --git a/bash/bash-2.05b/autofoo.patch b/bash/bash-2.05b/autofoo.patch
index e69de29bb2..a3b9a8b3a2 100644
--- a/bash/bash-2.05b/autofoo.patch
+++ b/bash/bash-2.05b/autofoo.patch
@@ -0,0 +1,1994 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- /dev/null
++++ bash-2.05b/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=i