# HG changeset patch # User Bram Moolenaar # Date 1641649503 -3600 # Node ID 0f2dd0d07071f49e087c044306f338de5ec78fa7 # Parent d3065e71757330a0319e57867f0b679840107106 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 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. diff --git a/src/Makefile b/src/Makefile --- 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 = \ diff --git a/src/auto/configure b/src/auto/configure --- 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. diff --git a/src/config.mk.in b/src/config.mk.in --- 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@ diff --git a/src/configure.ac b/src/configure.ac --- 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, diff --git a/src/feature.h b/src/feature.h --- 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 diff --git a/src/version.c b/src/version.c --- 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,