MSVC: link in invalidcontinue.obj for better POSIX compatibility

By default, Windows abort()'s instead of setting errno=EINVAL when invalid arguments are passed to standard functions. For example, when PAGER quits and git detects it with errno=EPIPE on write(), check_pipe() in write_or_die.c tries raise(SIGPIPE) but since there is no SIGPIPE on Windows, it is treated as invalid argument, causing abort() and crash report window. Linking in invalidcontinue.obj (provided along with MS compiler) allows raise(SIGPIPE) to return with errno=EINVAL. Signed-off-by: Marat Radchenko <marat@slonopotamus.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Marat Radchenko committed Mar 29, 2014 at 00:08 UTC 4b623d80f73528a632576990ca51e34c333d5dd6
1 file changed +1 -1
config.mak.uname
+1 -1
@@ -365,7 +365,7 @@ ifeq ($(uname_S),Windows)
365 compat/win32/dirent.o
366 COMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DNOGDI -DHAVE_STRING_H -DHAVE_ALLOCA_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\".exe\"
367 BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE -NODEFAULTLIB:MSVCRT.lib
368 - EXTLIBS = user32.lib advapi32.lib shell32.lib wininet.lib ws2_32.lib
368 + EXTLIBS = user32.lib advapi32.lib shell32.lib wininet.lib ws2_32.lib invalidcontinue.obj
369 PTHREAD_LIBS =
370 lib =
371 ifndef DEBUG