# HG changeset patch # User Christian Brabandt # Date 1517406305 -3600 # Node ID eb45750114edb41b30d281a4958926ffa4e443ac # Parent ff0adb5f16d06f8a900662d6d2633826b50321a9 patch 8.0.1444: missing -D_FILE_OFFSET_BITS=64 may cause problems commit https://github.com/vim/vim/commit/ec0557f08b2660118eaedb94471e5ab0f87cf2a3 Author: Bram Moolenaar Date: Wed Jan 31 14:41:37 2018 +0100 patch 8.0.1444: missing -D_FILE_OFFSET_BITS=64 may cause problems Problem: Missing -D_FILE_OFFSET_BITS=64 may cause problems if a library is compiled with it. Solution: Include -D_FILE_OFFSET_BITS if some CFLAGS has it. (James McCoy, closes #2600) diff --git a/src/auto/configure b/src/auto/configure --- a/src/auto/configure +++ b/src/auto/configure @@ -14314,6 +14314,18 @@ if test "$GCC" = yes; then fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need to force -D_FILE_OFFSET_BITS=64" >&5 +$as_echo_n "checking whether we need to force -D_FILE_OFFSET_BITS=64... " >&6; } +if echo "$CFLAGS $LUA_CFLAGS $MZSCHEME_CFLAGS $PERL_CFLAGS $PYTHON_GETPATH_CFLAGS $PYTHON_CFLAGS $PYTHON3_CFLAGS $TCL_CFLAGS $RUBY_CFLAGS $GTK_CFLAGS" | grep -q D_FILE_OFFSET_BITS 2>/dev/null; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + $as_echo "#define _FILE_OFFSET_BITS 64" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker --as-needed support" >&5 $as_echo_n "checking linker --as-needed support... " >&6; } LINK_AS_NEEDED= diff --git a/src/configure.ac b/src/configure.ac --- a/src/configure.ac +++ b/src/configure.ac @@ -4366,6 +4366,20 @@ if test "$GCC" = yes; then fi AC_SUBST(DEPEND_CFLAGS_FILTER) +dnl On some systems AC_SYS_LARGEFILE determines that -D_FILE_OFFSET_BITS=64 +dnl isn't required, but the CFLAGS for some of the libraries we're using +dnl include the define. Since the define changes the size of some datatypes +dnl (e.g. ino_t and off_t), all of Vim's modules must be compiled with a +dnl consistent value. It's therefore safest to force the use of the define +dnl if it's present in any of the *_CFLAGS variables. +AC_MSG_CHECKING(whether we need to force -D_FILE_OFFSET_BITS=64) +if echo "$CFLAGS $LUA_CFLAGS $MZSCHEME_CFLAGS $PERL_CFLAGS $PYTHON_GETPATH_CFLAGS $PYTHON_CFLAGS $PYTHON3_CFLAGS $TCL_CFLAGS $RUBY_CFLAGS $GTK_CFLAGS" | grep -q D_FILE_OFFSET_BITS 2>/dev/null; then + AC_MSG_RESULT(yes) + AC_DEFINE(_FILE_OFFSET_BITS, 64) +else + AC_MSG_RESULT(no) +fi + dnl link.sh tries to avoid overlinking in a hackish way. dnl At least GNU ld supports --as-needed which provides the same functionality dnl at linker level. Let's use it. diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -772,6 +772,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1444, +/**/ 1443, /**/ 1442,