changeset 27020:0f2dd0d07071 v8.2.4039

patch 8.2.4039: the xdiff library is linked in even when not used Commit: https://github.com/vim/vim/commit/67ffb417861a90fd2c1b215a42fd230272ed94cb Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jan 8 13:36:57 2022 +0000 patch 8.2.4039: the xdiff library is linked in even when not used Problem: The xdiff library is linked in even when not used. Solution: Use configure to decide whether xdiff object files are included.
author Bram Moolenaar <Bram@vim.org>
date Sat, 08 Jan 2022 14:45:03 +0100
parents d3065e717573
children 7c33c227c1ed
files src/Makefile src/auto/configure src/config.mk.in src/configure.ac src/feature.h src/version.c
diffstat 6 files changed, 32 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/Makefile
+++ b/src/Makefile
@@ -1874,7 +1874,7 @@ OBJ_COMMON = \
 	$(OS_EXTRA_OBJ) \
 	$(NETBEANS_OBJ) \
 	$(CHANNEL_OBJ) \
-	$(XDIFF_OBJS)
+	$(XDIFF_OBJS_USED)
 
 # The files included by tests are not in OBJ_COMMON.
 OBJ_MAIN = \
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -714,6 +714,7 @@ LUA_SRC
 vi_cv_path_plain_lua
 vi_cv_path_luajit
 vi_cv_path_lua
+XDIFF_OBJS_USED
 compiledby
 dogvimdiff
 dovimdiff
@@ -5305,6 +5306,20 @@ else
 $as_echo "yes" >&6; }
 fi
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking diff feature" >&5
+$as_echo_n "checking diff feature... " >&6; }
+if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled in $features version" >&5
+$as_echo "disabled in $features version" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: enabled" >&5
+$as_echo "enabled" >&6; }
+  $as_echo "#define FEAT_DIFF 1" >>confdefs.h
+
+  XDIFF_OBJS_USED="\$(XDIFF_OBJS)"
+
+fi
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-luainterp argument" >&5
 $as_echo_n "checking --enable-luainterp argument... " >&6; }
 # Check whether --enable-luainterp was given.
--- a/src/config.mk.in
+++ b/src/config.mk.in
@@ -37,6 +37,8 @@ X_PRE_LIBS	= @X_PRE_LIBS@
 X_EXTRA_LIBS	= @X_EXTRA_LIBS@
 X_LIBS		= @X_LIB@
 
+XDIFF_OBJS_USED	= @XDIFF_OBJS_USED@
+
 LUA_LIBS	= @LUA_LIBS@
 LUA_SRC		= @LUA_SRC@
 LUA_OBJ		= @LUA_OBJ@
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -567,6 +567,16 @@ else
   AC_MSG_RESULT(yes)
 fi
 
+AC_MSG_CHECKING([diff feature])
+if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
+  AC_MSG_RESULT([disabled in $features version])
+else
+  AC_MSG_RESULT(enabled)
+  AC_DEFINE(FEAT_DIFF)
+  XDIFF_OBJS_USED="\$(XDIFF_OBJS)"
+  AC_SUBST(XDIFF_OBJS_USED)
+fi
+
 dnl Check for Lua feature.
 AC_MSG_CHECKING(--enable-luainterp argument)
 AC_ARG_ENABLE(luainterp,
--- a/src/feature.h
+++ b/src/feature.h
@@ -345,8 +345,9 @@
 /*
  * +diff		Displaying diffs in a nice way.
  *			Requires +windows and +autocmd.
+ *			Can be enabled in autoconf already.
  */
-#if defined(FEAT_NORMAL)
+#if defined(FEAT_NORMAL) && !defined(FEAT_DIFF)
 # define FEAT_DIFF
 #endif
 
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4039,
+/**/
     4038,
 /**/
     4037,