patch 9.1.0622: MS-Windows: mingw-build can be optimized Commit: https://github.com/vim/vim/commit/032accd98b6915b5d642a2d059cc666c2c786579 Author: Ken Takata <ken...@csc.jp> Date: Fri Jul 26 18:51:20 2024 +0200
patch 9.1.0622: MS-Windows: mingw-build can be optimized Problem: MS-Windows: mingw-build can be optimized Solution: use --gc-sections to reduce the size of the executable (Ken Takata) Use the --gc-sections linker option and the -ffunction-sections compiler option to reduce the size of the executable files. To make these work, the -fno-asynchronous-unwind-tables compiler option is also needed. This is enabled by default and can be disabled by `USE_GC_SECTIONS=no`. Note: A similar feature has been already used in MSVC. (The /OPT linker option.) related: #15350 Signed-off-by: Ken Takata <ken...@csc.jp> Signed-off-by: Christian Brabandt <c...@256bit.org> diff --git a/src/Make_cyg_ming.mak b/src/Make_cyg_ming.mak index 911adb5ee..a0c10b113 100644 --- a/src/Make_cyg_ming.mak +++ b/src/Make_cyg_ming.mak @@ -130,7 +130,6 @@ ifndef STATIC_STDCPLUS STATIC_STDCPLUS=no endif - # Link against the shared version of libwinpthread by default. Set # STATIC_WINPTHREAD to "yes" to link against static version instead. ifndef STATIC_WINPTHREAD @@ -140,6 +139,12 @@ endif # This is used when STATIC_STDCPLUS=yes. HAS_GCC_EH=yes +# Reduce the size of the executables by using the --gc-sections linker +# option. Set USE_GC_SECTIONS to "no" if you see any issues with this. +ifndef USE_GC_SECTIONS +USE_GC_SECTIONS=yes +endif + # If the user doesn't want gettext, undefine it. ifeq (no, $(GETTEXT)) GETTEXT= @@ -1093,6 +1098,16 @@ LIB += -lgcc_eh LIB += -Wl,-Bstatic -lwinpthread -Wl,-Bdynamic endif +# To reduce the file size +ifeq (yes, $(USE_GC_SECTIONS)) +CFLAGS += -ffunction-sections -fno-asynchronous-unwind-tables +CXXFLAGS += -fasynchronous-unwind-tables +LFLAGS += -Wl,--gc-sections + ifeq (yes, $(VIMDLL)) +EXELFLAGS += -Wl,--gc-sections + endif +endif + ifeq (yes, $(MAP)) LFLAGS += -Wl,-Map=$(TARGET).map endif diff --git a/src/version.c b/src/version.c index a70a97812..01aea1f24 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 622, /**/ 621, /**/ -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/E1sXOX0-00Ce45-DY%40256bit.org.