diff options
author | Martin Pool <mbp@samba.org> | 2001-08-14 02:18:04 +0000 |
---|---|---|
committer | Martin Pool <mbp@samba.org> | 2001-08-14 02:18:04 +0000 |
commit | 7ca6e8564990a7e8d5b4ea623ce22bdaaae0bc1b (patch) | |
tree | 6bea46b3d1fda919261af3995494cc5ba5ed8920 /aclocal.m4 | |
parent | 74be4fc399887ee6beeda794b16dcdf2497b6550 (diff) | |
download | rsync-7ca6e8564990a7e8d5b4ea623ce22bdaaae0bc1b.tar.gz rsync-7ca6e8564990a7e8d5b4ea623ce22bdaaae0bc1b.tar.bz2 rsync-7ca6e8564990a7e8d5b4ea623ce22bdaaae0bc1b.zip |
Commit getconf/socklen_t/largefile patch suggested by Albert Chin.
This is tested on
Solaris 2.5.2, 2.6, 7, 8/SPARC, HP-UX 10.20, 11.00,
Tru64 UNIX 4.0D, 5.0A, IRIX 6.2, 6.5, AIX 4.3.2
and it works ok.
This patch *requires* autoconf 2.52.
Diffstat (limited to 'aclocal.m4')
-rw-r--r-- | aclocal.m4 | 146 |
1 files changed, 29 insertions, 117 deletions
@@ -22,81 +22,6 @@ AC_DEFUN(AC_VALIDATE_CACHE_SYSTEM_TYPE, [ ac_cv_target_system_type="$target" ]) -#serial 12 - -dnl By default, many hosts won't let programs access large files; -dnl one must use special compiler options to get large-file access to work. -dnl For more details about this brain damage please see: -dnl http://www.sas.com/standards/large.file/x_open.20Mar96.html - -dnl Written by Paul Eggert <eggert@twinsun.com>. - -dnl Internal subroutine of AC_SYS_LARGEFILE. -dnl AC_SYS_LARGEFILE_TEST_INCLUDES -AC_DEFUN(AC_SYS_LARGEFILE_TEST_INCLUDES, - [[#include <sys/types.h> - int a[(off_t) 9223372036854775807 == 9223372036854775807 ? 1 : -1]; - ]]) - -dnl Internal subroutine of AC_SYS_LARGEFILE. -dnl AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE, CACHE-VAR, COMMENT, INCLUDES, FUNCTION-BODY) -AC_DEFUN([AC_SYS_LARGEFILE_MACRO_VALUE], - [AC_CACHE_CHECK([for $1 value needed for large files], $3, - [$3=no - AC_TRY_COMPILE(AC_SYS_LARGEFILE_TEST_INCLUDES -$5 - , - [$6], - , - [AC_TRY_COMPILE([#define $1 $2] -AC_SYS_LARGEFILE_TEST_INCLUDES -$5 - , - [$6], - [$3=$2])])]) - if test "[$]$3" != no; then - AC_DEFINE_UNQUOTED([$1], [$]$3, [$4]) - fi]) - -AC_DEFUN([AC_SYS_LARGEFILE], - [AC_ARG_ENABLE(largefile, - [ --disable-largefile omit support for large files]) - if test "$enable_largefile" != no; then - - AC_CACHE_CHECK([for special C compiler options needed for large files], - ac_cv_sys_largefile_CC, - [ac_cv_sys_largefile_CC=no - if test "$GCC" != yes; then - # IRIX 6.2 and later do not support large files by default, - # so use the C compiler's -n32 option if that helps. - AC_TRY_COMPILE(AC_SYS_LARGEFILE_TEST_INCLUDES, , , - [ac_save_CC="$CC" - CC="$CC -n32" - AC_TRY_COMPILE(AC_SYS_LARGEFILE_TEST_INCLUDES, , - ac_cv_sys_largefile_CC=' -n32') - CC="$ac_save_CC"]) - fi]) - if test "$ac_cv_sys_largefile_CC" != no; then - CC="$CC$ac_cv_sys_largefile_CC" - fi - - AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64, - ac_cv_sys_file_offset_bits, - [Number of bits in a file offset, on hosts where this is settable.]) - AC_SYS_LARGEFILE_MACRO_VALUE(_LARGEFILE_SOURCE, 1, - ac_cv_sys_largefile_source, - [Define to make ftello visible on some hosts (e.g. HP-UX 10.20).], - [#include <stdio.h>], [return !ftello;]) - AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1, - ac_cv_sys_large_files, - [Define for large files, on AIX-style hosts.]) - AC_SYS_LARGEFILE_MACRO_VALUE(_XOPEN_SOURCE, 500, - ac_cv_sys_xopen_source, - [Define to make ftello visible on some hosts (e.g. glibc 2.1.3).], - [#include <stdio.h>], [return !ftello;]) - fi - ]) - dnl Check for socklen_t: historically on BSD it is an int, and in dnl POSIX 1g it is a type of its own, but some platforms use different dnl types for the argument to getsockopt, getpeername, etc. So we @@ -108,50 +33,37 @@ dnl the moment. AC_DEFUN([TYPE_SOCKLEN_T], [ - AC_MSG_CHECKING([for socklen_t]) - AC_CACHE_VAL([lftp_cv_socklen_t], - [ - lftp_cv_socklen_t=no - AC_TRY_COMPILE([ - #include <sys/types.h> - #include <sys/socket.h> - ], - [ - socklen_t len; - getpeername(0,0,&len); - ], - [ - lftp_cv_socklen_t=yes - ]) - ]) - AC_MSG_RESULT($lftp_cv_socklen_t) - if test $lftp_cv_socklen_t = no; then + AC_CHECK_TYPE([socklen_t], ,[ AC_MSG_CHECKING([for socklen_t equivalent]) - AC_CACHE_VAL([lftp_cv_socklen_t_equiv], + AC_CACHE_VAL([rsync_cv_socklen_t_equiv], [ - lftp_cv_socklen_t_equiv=int - AC_LANG_SAVE - for t in int size_t unsigned long "unsigned long"; do - AC_TRY_COMPILE([ - #include <sys/types.h> - #include <sys/socket.h> - ], - [ - $t len; - getpeername(0,0,&len); - ], - [ - lftp_cv_socklen_t_equiv="$t" - break - ], - [ - AC_MSG_ERROR([Cannot find a type to use in place of socklen_t]) - ]) + # Systems have either "struct sockaddr *" or + # "void *" as the second argument to getpeername + rsync_cv_socklen_t_equiv= + for arg2 in "struct sockaddr" void; do + for t in int size_t unsigned long "unsigned long"; do + AC_TRY_COMPILE([ + #include <sys/types.h> + #include <sys/socket.h> + + int getpeername (int, $arg2 *, $t *); + ],[ + $t len; + getpeername(0,0,&len); + ],[ + rsync_cv_socklen_t_equiv="$t" + break + ]) + done done + + if test "x$rsync_cv_socklen_t_equiv" = x; then + AC_MSG_ERROR([Cannot find a type to use in place of socklen_t]) + fi ]) - AC_MSG_RESULT($lftp_cv_socklen_t_equiv) - AC_DEFINE_UNQUOTED(socklen_t, $lftp_cv_socklen_t_equiv, - [type to use in place of socklen_t if not defined]) - fi + AC_MSG_RESULT($rsync_cv_socklen_t_equiv) + AC_DEFINE_UNQUOTED(socklen_t, $rsync_cv_socklen_t_equiv, + [type to use in place of socklen_t if not defined])], + [#include <sys/types.h> +#include <sys/socket.h>]) ]) - |