diff options
Diffstat (limited to 'aclocal.m4')
-rw-r--r-- | aclocal.m4 | 160 |
1 files changed, 138 insertions, 22 deletions
@@ -80,6 +80,9 @@ AC_CACHE_VAL(bash_cv_type_$1, #if HAVE_INTTYPES_H #include <inttypes.h> #endif +#if HAVE_STDINT_H +#include <stdint.h> +#endif $2 ], bash_cv_type_$1=yes, bash_cv_type_$1=no)]) AC_MSG_RESULT($bash_cv_type_$1) @@ -215,7 +218,7 @@ AC_CACHE_VAL(bash_cv_sys_siglist, #ifdef HAVE_UNISTD_H #include <unistd.h> #endif -#ifndef SYS_SIGLIST_DECLARED +#if !HAVE_DECL_SYS_SIGLIST extern char *sys_siglist[]; #endif main() @@ -336,18 +339,18 @@ main() { DIR *dir; int fd, err; -err = mkdir("/tmp/bash-aclocal", 0700); +err = mkdir("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); +unlink("bash-aclocal/not_a_directory"); +fd = open("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"); +dir = opendir("bash-aclocal/not_a_directory"); +unlink("bash-aclocal/not_a_directory"); +rmdir("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) @@ -531,6 +534,18 @@ AC_DEFINE(RLIMTYPE, rlim_t) 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 +]) + 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>. @@ -685,7 +700,7 @@ fi ]) AC_DEFUN(BASH_FUNC_GETCWD, -[AC_MSG_CHECKING([if getcwd() will dynamically allocate memory]) +[AC_MSG_CHECKING([if getcwd() will dynamically allocate memory with 0 size]) AC_CACHE_VAL(bash_cv_getcwd_malloc, [AC_TRY_RUN([ #include <stdio.h> @@ -1423,19 +1438,19 @@ exit (1); #if defined (NeXT) exit (1); #endif -err = mkdir("/tmp/bash-aclocal", 0700); +err = mkdir("bash-aclocal", 0700); if (err < 0) { perror ("mkdir"); exit(1); } -fd = mknod ("/tmp/bash-aclocal/sh-np-autoconf", 0666 | S_IFIFO, 0); +fd = mknod ("bash-aclocal/sh-np-autoconf", 0666 | S_IFIFO, 0); if (fd == -1) { - rmdir ("/tmp/bash-aclocal"); + rmdir ("bash-aclocal"); exit (1); } close(fd); -unlink ("/tmp/bash-aclocal/sh-np-autoconf"); -rmdir ("/tmp/bash-aclocal"); +unlink ("bash-aclocal/sh-np-autoconf"); +rmdir ("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) @@ -1541,18 +1556,16 @@ AC_DEFUN(BASH_CHECK_DEV_FD, [AC_MSG_CHECKING(whether /dev/fd is available) AC_CACHE_VAL(bash_cv_dev_fd, [bash_cv_dev_fd="" -if test -d /dev/fd && test -r /dev/fd/0 < /dev/null; then +if test -d /dev/fd && (exec test -r /dev/fd/0 < /dev/null) ; then # check for systems like FreeBSD 5 that only provide /dev/fd/[012] - exec 3</dev/null - if test -r /dev/fd/3; then + if (exec test -r /dev/fd/3 3</dev/null) ; then bash_cv_dev_fd=standard else bash_cv_dev_fd=absent fi - exec 3<&- fi if test -z "$bash_cv_dev_fd" ; then - if test -d /proc/self/fd && test -r /proc/self/fd/0 < /dev/null; then + if test -d /proc/self/fd && (exec test -r /proc/self/fd/0 < /dev/null) ; then bash_cv_dev_fd=whacky else bash_cv_dev_fd=absent @@ -1572,9 +1585,9 @@ 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 < /dev/null; then +[if test -d /dev/fd && (exec test -r /dev/stdin < /dev/null) ; then bash_cv_dev_stdin=present - elif test -d /proc/self/fd && test -r /dev/stdin < /dev/null; then + elif test -d /proc/self/fd && (exec test -r /dev/stdin < /dev/null) ; then bash_cv_dev_stdin=present else bash_cv_dev_stdin=absent @@ -1679,8 +1692,12 @@ 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(mbrlen, AC_DEFINE(HAVE_MBRLEN)) +AC_CHECK_FUNC(mbscasecmp, AC_DEFINE(HAVE_MBSCMP)) +AC_CHECK_FUNC(mbscmp, AC_DEFINE(HAVE_MBSCMP)) +AC_CHECK_FUNC(mbsrtowcs, AC_DEFINE(HAVE_MBSRTOWCS)) + +AC_REPLACE_FUNCS(mbschr) AC_CHECK_FUNC(wcrtomb, AC_DEFINE(HAVE_WCRTOMB)) AC_CHECK_FUNC(wcscoll, AC_DEFINE(HAVE_WCSCOLL)) @@ -1742,6 +1759,13 @@ if test $bash_cv_type_wint_t = yes; then AC_DEFINE(HAVE_WINT_T, 1, [systems should define this type here]) fi +if test "$am_cv_func_iconv" = yes; then + OLDLIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + AC_CHECK_FUNCS(locale_charset) + LIBS="$OLDLIBS" +fi + ]) dnl need: prefix exec_prefix libdir includedir CC TERMCAP_LIB @@ -2366,7 +2390,7 @@ AC_DEFUN([AM_INTL_SUBDIR], AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ stdlib.h string.h unistd.h sys/param.h]) AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \ -geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \ +geteuid getgid getuid mempcpy munmap putenv setenv setlocale localeconv stpcpy \ strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \ __fsetlocking]) @@ -3999,3 +4023,95 @@ AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG], [Define if you have the unsigned long long type.]) fi ]) + +dnl From gnulib +AC_DEFUN([BASH_FUNC_FPURGE], +[ + AC_CHECK_FUNCS_ONCE([fpurge]) + AC_CHECK_FUNCS_ONCE([__fpurge]) + AC_CHECK_DECLS([fpurge], , , [#include <stdio.h>]) +]) + +AC_DEFUN([BASH_FUNC_SNPRINTF], +[ + AC_CHECK_FUNCS_ONCE([snprintf]) + if test X$ac_cv_func_snprintf = Xyes; then + AC_CACHE_CHECK([for standard-conformant snprintf], [bash_cv_func_snprintf], + [AC_TRY_RUN([ +#include <stdio.h> + +main() +{ + int n; + n = snprintf (0, 0, "%s", "0123456"); + exit(n != 7); +} +], bash_cv_func_snprintf=yes, bash_cv_func_snprintf=no, + [AC_MSG_WARN([cannot check standard snprintf if cross-compiling]) + bash_cv_func_snprintf=yes] +)]) + if test $bash_cv_func_snprintf = no; then + ac_cv_func_snprintf=no + fi + fi + if test $ac_cv_func_snprintf = no; then + AC_DEFINE(HAVE_SNPRINTF, 0, + [Define if you have a standard-conformant snprintf function.]) + fi +]) + +AC_DEFUN([BASH_FUNC_VSNPRINTF], +[ + AC_CHECK_FUNCS_ONCE([vsnprintf]) + if test X$ac_cv_func_vsnprintf = Xyes; then + AC_CACHE_CHECK([for standard-conformant vsnprintf], [bash_cv_func_vsnprintf], + [AC_TRY_RUN([ +#if HAVE_STDARG_H +#include <stdarg.h> +#else +#include <varargs.h> +#endif +#include <stdio.h> +#include <stdlib.h> + +static int +#if HAVE_STDARG_H +foo(const char *fmt, ...) +#else +foo(format, va_alist) + const char *format; + va_dcl +#endif +{ + va_list args; + int n; + +#if HAVE_STDARG_H + va_start(args, fmt); +#else + va_start(args); +#endif + n = vsnprintf(0, 0, fmt, args); + va_end (args); + return n; +} + +main() +{ + int n; + n = foo("%s", "0123456"); + exit(n != 7); +} +], bash_cv_func_vsnprintf=yes, bash_cv_func_vsnprintf=no, + [AC_MSG_WARN([cannot check standard vsnprintf if cross-compiling]) + bash_cv_func_vsnprintf=yes] +)]) + if test $bash_cv_func_vsnprintf = no; then + ac_cv_func_vsnprintf=no + fi + fi + if test $ac_cv_func_vsnprintf = no; then + AC_DEFINE(HAVE_VSNPRINTF, 0, + [Define if you have a standard-conformant vsnprintf function.]) + fi +]) |