diff --git a/config.mak.uname b/config.mak.uname
index 5cf68f054a1044..c329b2d1204095 100644
--- a/config.mak.uname
+++ b/config.mak.uname
@@ -426,7 +426,7 @@ ifeq ($(uname_S),Windows)
compat/win32/pthread.o compat/win32/syslog.o \
compat/win32/dirent.o compat/win32/fscache.o
COMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DDETECT_MSYS_TTY -DNOGDI -DHAVE_STRING_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\".exe\"
- BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE
+ BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -ENTRY:wmainCRTStartup -SUBSYSTEM:CONSOLE
# invalidcontinue.obj allows Git's source code to close the same file
# handle twice, or to access the osfhandle of an already-closed stdout
# See https://msdn.microsoft.com/en-us/library/ms235330.aspx
diff --git a/contrib/buildsystems/Generators/Vcxproj.pm b/contrib/buildsystems/Generators/Vcxproj.pm
index 2a8277eb9343ff..00ef26fddd7c96 100644
--- a/contrib/buildsystems/Generators/Vcxproj.pm
+++ b/contrib/buildsystems/Generators/Vcxproj.pm
@@ -172,6 +172,7 @@ sub createProject {
\$(VCPKGLibDirectory);%(AdditionalLibraryDirectories)
\$(VCPKGLibs);\$(AdditionalDependencies)
invalidcontinue.obj %(AdditionalOptions)
+ wmainCRTStartup
$cdup\\compat\\win32\\git.manifest
Console