704e404
To: vim-dev@vim.org
704e404
Subject: Patch 7.2.413
704e404
Fcc: outbox
704e404
From: Bram Moolenaar <Bram@moolenaar.net>
704e404
Mime-Version: 1.0
704e404
Content-Type: text/plain; charset=UTF-8
704e404
Content-Transfer-Encoding: 8bit
704e404
------------
704e404
704e404
Patch 7.2.413
704e404
Problem:    Large file support is incorrect.
704e404
Solution:   Add AC_SYS_LARGEFILE to configure. (James Vega)
704e404
Files:      src/configure.in, src/config.h.in, src/auto/configure
704e404
    
704e404
704e404
*** ../vim-7.2.412/src/configure.in	2010-03-10 16:27:27.000000000 +0100
704e404
--- src/configure.in	2010-04-01 15:06:04.000000000 +0200
704e404
***************
704e404
*** 2669,2674 ****
704e404
--- 2669,2678 ----
704e404
  	usleep utime utimes)
704e404
  AC_FUNC_FSEEKO
704e404
  
704e404
+ dnl define _LARGE_FILES, _FILE_OFFSET_BITS and _LARGEFILE_SOURCE when
704e404
+ dnl appropriate, so that off_t is 64 bits when needed.
704e404
+ AC_SYS_LARGEFILE
704e404
+ 
704e404
  dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
704e404
  AC_MSG_CHECKING(for st_blksize)
704e404
  AC_TRY_COMPILE(
704e404
*** ../vim-7.2.412/src/config.h.in	2010-02-24 14:46:58.000000000 +0100
704e404
--- src/config.h.in	2010-04-01 15:10:49.000000000 +0200
704e404
***************
704e404
*** 196,201 ****
704e404
--- 196,206 ----
704e404
  #undef HAVE_UTIME
704e404
  #undef HAVE_BIND_TEXTDOMAIN_CODESET
704e404
  
704e404
+ /* Define, if needed, for accessing large files. */
704e404
+ #undef _LARGE_FILES
704e404
+ #undef _FILE_OFFSET_BITS
704e404
+ #undef _LARGEFILE_SOURCE
704e404
+ 
704e404
  /* Define if you do not have utime(), but do have the utimes() function. */
704e404
  #undef HAVE_UTIMES
704e404
  
704e404
*** ../vim-7.2.412/src/auto/configure	2010-03-10 16:27:27.000000000 +0100
704e404
--- src/auto/configure	2010-05-07 16:01:08.000000000 +0200
704e404
***************
704e404
*** 821,826 ****
704e404
--- 821,827 ----
704e404
  with_gnome
704e404
  with_motif_lib
704e404
  with_tlib
704e404
+ enable_largefile
704e404
  enable_acl
704e404
  enable_gpm
704e404
  enable_sysmouse
704e404
***************
704e404
*** 1485,1490 ****
704e404
--- 1486,1492 ----
704e404
    --enable-nextaw-check   If auto-select GUI, check for neXtaw default=yes
704e404
    --enable-carbon-check   If auto-select GUI, check for Carbon default=yes
704e404
    --disable-gtktest       Do not try to compile and run a test GTK program
704e404
+   --disable-largefile     omit support for large files
704e404
    --disable-acl           Don't check for ACL support.
704e404
    --disable-gpm           Don't use gpm (Linux mouse daemon).
704e404
    --disable-sysmouse    Don't use sysmouse (mouse in *BSD console).
704e404
***************
704e404
*** 14345,14350 ****
704e404
--- 14347,14709 ----
704e404
  fi
704e404
  
704e404
  
704e404
+ # Check whether --enable-largefile was given.
704e404
+ if test "${enable_largefile+set}" = set; then
704e404
+   enableval=$enable_largefile;
704e404
+ fi
704e404
+ 
704e404
+ if test "$enable_largefile" != no; then
704e404
+ 
704e404
+   { $as_echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5
704e404
+ $as_echo_n "checking for special C compiler options needed for large files... " >&6; }
704e404
+ if test "${ac_cv_sys_largefile_CC+set}" = set; then
704e404
+   $as_echo_n "(cached) " >&6
704e404
+ else
704e404
+   ac_cv_sys_largefile_CC=no
704e404
+      if test "$GCC" != yes; then
704e404
+        ac_save_CC=$CC
704e404
+        while :; do
704e404
+ 	 # IRIX 6.2 and later do not support large files by default,
704e404
+ 	 # so use the C compiler's -n32 option if that helps.
704e404
+ 	 cat >conftest.$ac_ext <<_ACEOF
704e404
+ /* confdefs.h.  */
704e404
+ _ACEOF
704e404
+ cat confdefs.h >>conftest.$ac_ext
704e404
+ cat >>conftest.$ac_ext <<_ACEOF
704e404
+ /* end confdefs.h.  */
704e404
+ #include <sys/types.h>
704e404
+  /* Check that off_t can represent 2**63 - 1 correctly.
704e404
+     We can't simply define LARGE_OFF_T to be 9223372036854775807,
704e404
+     since some C++ compilers masquerading as C compilers
704e404
+     incorrectly reject 9223372036854775807.  */
704e404
+ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
704e404
+   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
704e404
+ 		       && LARGE_OFF_T % 2147483647 == 1)
704e404
+ 		      ? 1 : -1];
704e404
+ int
704e404
+ main ()
704e404
+ {
704e404
+ 
704e404
+   ;
704e404
+   return 0;
704e404
+ }
704e404
+ _ACEOF
704e404
+ 	 rm -f conftest.$ac_objext
704e404
+ if { (ac_try="$ac_compile"
704e404
+ case "(($ac_try" in
704e404
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
704e404
+   *) ac_try_echo=$ac_try;;
704e404
+ esac
704e404
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
704e404
+ $as_echo "$ac_try_echo") >&5
704e404
+   (eval "$ac_compile") 2>conftest.er1
704e404
+   ac_status=$?
704e404
+   grep -v '^ *+' conftest.er1 >conftest.err
704e404
+   rm -f conftest.er1
704e404
+   cat conftest.err >&5
704e404
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
704e404
+   (exit $ac_status); } && {
704e404
+ 	 test -z "$ac_c_werror_flag" ||
704e404
+ 	 test ! -s conftest.err
704e404
+        } && test -s conftest.$ac_objext; then
704e404
+   break
704e404
+ else
704e404
+   $as_echo "$as_me: failed program was:" >&5
704e404
+ sed 's/^/| /' conftest.$ac_ext >&5
704e404
+ 
704e404
+ 
704e404
+ fi
704e404
+ 
704e404
+ rm -f core conftest.err conftest.$ac_objext
704e404
+ 	 CC="$CC -n32"
704e404
+ 	 rm -f conftest.$ac_objext
704e404
+ if { (ac_try="$ac_compile"
704e404
+ case "(($ac_try" in
704e404
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
704e404
+   *) ac_try_echo=$ac_try;;
704e404
+ esac
704e404
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
704e404
+ $as_echo "$ac_try_echo") >&5
704e404
+   (eval "$ac_compile") 2>conftest.er1
704e404
+   ac_status=$?
704e404
+   grep -v '^ *+' conftest.er1 >conftest.err
704e404
+   rm -f conftest.er1
704e404
+   cat conftest.err >&5
704e404
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
704e404
+   (exit $ac_status); } && {
704e404
+ 	 test -z "$ac_c_werror_flag" ||
704e404
+ 	 test ! -s conftest.err
704e404
+        } && test -s conftest.$ac_objext; then
704e404
+   ac_cv_sys_largefile_CC=' -n32'; break
704e404
+ else
704e404
+   $as_echo "$as_me: failed program was:" >&5
704e404
+ sed 's/^/| /' conftest.$ac_ext >&5
704e404
+ 
704e404
+ 
704e404
+ fi
704e404
+ 
704e404
+ rm -f core conftest.err conftest.$ac_objext
704e404
+ 	 break
704e404
+        done
704e404
+        CC=$ac_save_CC
704e404
+        rm -f conftest.$ac_ext
704e404
+     fi
704e404
+ fi
704e404
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5
704e404
+ $as_echo "$ac_cv_sys_largefile_CC" >&6; }
704e404
+   if test "$ac_cv_sys_largefile_CC" != no; then
704e404
+     CC=$CC$ac_cv_sys_largefile_CC
704e404
+   fi
704e404
+ 
704e404
+   { $as_echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5
704e404
+ $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
704e404
+ if test "${ac_cv_sys_file_offset_bits+set}" = set; then
704e404
+   $as_echo_n "(cached) " >&6
704e404
+ else
704e404
+   while :; do
704e404
+   cat >conftest.$ac_ext <<_ACEOF
704e404
+ /* confdefs.h.  */
704e404
+ _ACEOF
704e404
+ cat confdefs.h >>conftest.$ac_ext
704e404
+ cat >>conftest.$ac_ext <<_ACEOF
704e404
+ /* end confdefs.h.  */
704e404
+ #include <sys/types.h>
704e404
+  /* Check that off_t can represent 2**63 - 1 correctly.
704e404
+     We can't simply define LARGE_OFF_T to be 9223372036854775807,
704e404
+     since some C++ compilers masquerading as C compilers
704e404
+     incorrectly reject 9223372036854775807.  */
704e404
+ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
704e404
+   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
704e404
+ 		       && LARGE_OFF_T % 2147483647 == 1)
704e404
+ 		      ? 1 : -1];
704e404
+ int
704e404
+ main ()
704e404
+ {
704e404
+ 
704e404
+   ;
704e404
+   return 0;
704e404
+ }
704e404
+ _ACEOF
704e404
+ rm -f conftest.$ac_objext
704e404
+ if { (ac_try="$ac_compile"
704e404
+ case "(($ac_try" in
704e404
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
704e404
+   *) ac_try_echo=$ac_try;;
704e404
+ esac
704e404
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
704e404
+ $as_echo "$ac_try_echo") >&5
704e404
+   (eval "$ac_compile") 2>conftest.er1
704e404
+   ac_status=$?
704e404
+   grep -v '^ *+' conftest.er1 >conftest.err
704e404
+   rm -f conftest.er1
704e404
+   cat conftest.err >&5
704e404
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
704e404
+   (exit $ac_status); } && {
704e404
+ 	 test -z "$ac_c_werror_flag" ||
704e404
+ 	 test ! -s conftest.err
704e404
+        } && test -s conftest.$ac_objext; then
704e404
+   ac_cv_sys_file_offset_bits=no; break
704e404
+ else
704e404
+   $as_echo "$as_me: failed program was:" >&5
704e404
+ sed 's/^/| /' conftest.$ac_ext >&5
704e404
+ 
704e404
+ 
704e404
+ fi
704e404
+ 
704e404
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
704e404
+   cat >conftest.$ac_ext <<_ACEOF
704e404
+ /* confdefs.h.  */
704e404
+ _ACEOF
704e404
+ cat confdefs.h >>conftest.$ac_ext
704e404
+ cat >>conftest.$ac_ext <<_ACEOF
704e404
+ /* end confdefs.h.  */
704e404
+ #define _FILE_OFFSET_BITS 64
704e404
+ #include <sys/types.h>
704e404
+  /* Check that off_t can represent 2**63 - 1 correctly.
704e404
+     We can't simply define LARGE_OFF_T to be 9223372036854775807,
704e404
+     since some C++ compilers masquerading as C compilers
704e404
+     incorrectly reject 9223372036854775807.  */
704e404
+ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
704e404
+   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
704e404
+ 		       && LARGE_OFF_T % 2147483647 == 1)
704e404
+ 		      ? 1 : -1];
704e404
+ int
704e404
+ main ()
704e404
+ {
704e404
+ 
704e404
+   ;
704e404
+   return 0;
704e404
+ }
704e404
+ _ACEOF
704e404
+ rm -f conftest.$ac_objext
704e404
+ if { (ac_try="$ac_compile"
704e404
+ case "(($ac_try" in
704e404
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
704e404
+   *) ac_try_echo=$ac_try;;
704e404
+ esac
704e404
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
704e404
+ $as_echo "$ac_try_echo") >&5
704e404
+   (eval "$ac_compile") 2>conftest.er1
704e404
+   ac_status=$?
704e404
+   grep -v '^ *+' conftest.er1 >conftest.err
704e404
+   rm -f conftest.er1
704e404
+   cat conftest.err >&5
704e404
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
704e404
+   (exit $ac_status); } && {
704e404
+ 	 test -z "$ac_c_werror_flag" ||
704e404
+ 	 test ! -s conftest.err
704e404
+        } && test -s conftest.$ac_objext; then
704e404
+   ac_cv_sys_file_offset_bits=64; break
704e404
+ else
704e404
+   $as_echo "$as_me: failed program was:" >&5
704e404
+ sed 's/^/| /' conftest.$ac_ext >&5
704e404
+ 
704e404
+ 
704e404
+ fi
704e404
+ 
704e404
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
704e404
+   ac_cv_sys_file_offset_bits=unknown
704e404
+   break
704e404
+ done
704e404
+ fi
704e404
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5
704e404
+ $as_echo "$ac_cv_sys_file_offset_bits" >&6; }
704e404
+ case $ac_cv_sys_file_offset_bits in #(
704e404
+   no | unknown) ;;
704e404
+   *)
704e404
+ cat >>confdefs.h <<_ACEOF
704e404
+ #define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
704e404
+ _ACEOF
704e404
+ ;;
704e404
+ esac
704e404
+ rm -rf conftest*
704e404
+   if test $ac_cv_sys_file_offset_bits = unknown; then
704e404
+     { $as_echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5
704e404
+ $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
704e404
+ if test "${ac_cv_sys_large_files+set}" = set; then
704e404
+   $as_echo_n "(cached) " >&6
704e404
+ else
704e404
+   while :; do
704e404
+   cat >conftest.$ac_ext <<_ACEOF
704e404
+ /* confdefs.h.  */
704e404
+ _ACEOF
704e404
+ cat confdefs.h >>conftest.$ac_ext
704e404
+ cat >>conftest.$ac_ext <<_ACEOF
704e404
+ /* end confdefs.h.  */
704e404
+ #include <sys/types.h>
704e404
+  /* Check that off_t can represent 2**63 - 1 correctly.
704e404
+     We can't simply define LARGE_OFF_T to be 9223372036854775807,
704e404
+     since some C++ compilers masquerading as C compilers
704e404
+     incorrectly reject 9223372036854775807.  */
704e404
+ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
704e404
+   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
704e404
+ 		       && LARGE_OFF_T % 2147483647 == 1)
704e404
+ 		      ? 1 : -1];
704e404
+ int
704e404
+ main ()
704e404
+ {
704e404
+ 
704e404
+   ;
704e404
+   return 0;
704e404
+ }
704e404
+ _ACEOF
704e404
+ rm -f conftest.$ac_objext
704e404
+ if { (ac_try="$ac_compile"
704e404
+ case "(($ac_try" in
704e404
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
704e404
+   *) ac_try_echo=$ac_try;;
704e404
+ esac
704e404
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
704e404
+ $as_echo "$ac_try_echo") >&5
704e404
+   (eval "$ac_compile") 2>conftest.er1
704e404
+   ac_status=$?
704e404
+   grep -v '^ *+' conftest.er1 >conftest.err
704e404
+   rm -f conftest.er1
704e404
+   cat conftest.err >&5
704e404
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
704e404
+   (exit $ac_status); } && {
704e404
+ 	 test -z "$ac_c_werror_flag" ||
704e404
+ 	 test ! -s conftest.err
704e404
+        } && test -s conftest.$ac_objext; then
704e404
+   ac_cv_sys_large_files=no; break
704e404
+ else
704e404
+   $as_echo "$as_me: failed program was:" >&5
704e404
+ sed 's/^/| /' conftest.$ac_ext >&5
704e404
+ 
704e404
+ 
704e404
+ fi
704e404
+ 
704e404
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
704e404
+   cat >conftest.$ac_ext <<_ACEOF
704e404
+ /* confdefs.h.  */
704e404
+ _ACEOF
704e404
+ cat confdefs.h >>conftest.$ac_ext
704e404
+ cat >>conftest.$ac_ext <<_ACEOF
704e404
+ /* end confdefs.h.  */
704e404
+ #define _LARGE_FILES 1
704e404
+ #include <sys/types.h>
704e404
+  /* Check that off_t can represent 2**63 - 1 correctly.
704e404
+     We can't simply define LARGE_OFF_T to be 9223372036854775807,
704e404
+     since some C++ compilers masquerading as C compilers
704e404
+     incorrectly reject 9223372036854775807.  */
704e404
+ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
704e404
+   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
704e404
+ 		       && LARGE_OFF_T % 2147483647 == 1)
704e404
+ 		      ? 1 : -1];
704e404
+ int
704e404
+ main ()
704e404
+ {
704e404
+ 
704e404
+   ;
704e404
+   return 0;
704e404
+ }
704e404
+ _ACEOF
704e404
+ rm -f conftest.$ac_objext
704e404
+ if { (ac_try="$ac_compile"
704e404
+ case "(($ac_try" in
704e404
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
704e404
+   *) ac_try_echo=$ac_try;;
704e404
+ esac
704e404
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
704e404
+ $as_echo "$ac_try_echo") >&5
704e404
+   (eval "$ac_compile") 2>conftest.er1
704e404
+   ac_status=$?
704e404
+   grep -v '^ *+' conftest.er1 >conftest.err
704e404
+   rm -f conftest.er1
704e404
+   cat conftest.err >&5
704e404
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
704e404
+   (exit $ac_status); } && {
704e404
+ 	 test -z "$ac_c_werror_flag" ||
704e404
+ 	 test ! -s conftest.err
704e404
+        } && test -s conftest.$ac_objext; then
704e404
+   ac_cv_sys_large_files=1; break
704e404
+ else
704e404
+   $as_echo "$as_me: failed program was:" >&5
704e404
+ sed 's/^/| /' conftest.$ac_ext >&5
704e404
+ 
704e404
+ 
704e404
+ fi
704e404
+ 
704e404
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
704e404
+   ac_cv_sys_large_files=unknown
704e404
+   break
704e404
+ done
704e404
+ fi
704e404
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5
704e404
+ $as_echo "$ac_cv_sys_large_files" >&6; }
704e404
+ case $ac_cv_sys_large_files in #(
704e404
+   no | unknown) ;;
704e404
+   *)
704e404
+ cat >>confdefs.h <<_ACEOF
704e404
+ #define _LARGE_FILES $ac_cv_sys_large_files
704e404
+ _ACEOF
704e404
+ ;;
704e404
+ esac
704e404
+ rm -rf conftest*
704e404
+   fi
704e404
+ fi
704e404
+ 
704e404
+ 
704e404
  { $as_echo "$as_me:$LINENO: checking for st_blksize" >&5
704e404
  $as_echo_n "checking for st_blksize... " >&6; }
704e404
  cat >conftest.$ac_ext <<_ACEOF
704e404
*** ../vim-7.2.412/src/version.c	2010-05-07 15:51:59.000000000 +0200
704e404
--- src/version.c	2010-05-07 16:04:29.000000000 +0200
704e404
***************
704e404
*** 683,684 ****
704e404
--- 683,686 ----
704e404
  {   /* Add new patch number below this line */
704e404
+ /**/
704e404
+     413,
704e404
  /**/
704e404
704e404
-- 
704e404
How To Keep A Healthy Level Of Insanity:
704e404
2. Page yourself over the intercom. Don't disguise your voice.
704e404
704e404
 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
704e404
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
704e404
\\\        download, build and distribute -- http://www.A-A-P.org        ///
704e404
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///