From: Junio C Hamano Date: Fri, 28 Mar 2014 20:35:52 GMT Subject: Re: [PATCH v2] MSVC: link in invalidcontinue.obj for better POSIX compatibility Message-ID: In-Reply-To: <1396037282-26081-1-git-send-email-marat@slonopotamus.org> Marat Radchenko writes: > 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 > --- Thanks; will queue. > config.mak.uname | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/config.mak.uname b/config.mak.uname > index 38c60af..8e7ec6e 100644 > --- a/config.mak.uname > +++ b/config.mak.uname > @@ -366,7 +366,7 @@ ifeq ($(uname_S),Windows) > compat/win32/dirent.o > COMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DNOGDI -DHAVE_STRING_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\".exe\" > BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE -NODEFAULTLIB:MSVCRT.lib > - EXTLIBS = user32.lib advapi32.lib shell32.lib wininet.lib ws2_32.lib > + EXTLIBS = user32.lib advapi32.lib shell32.lib wininet.lib ws2_32.lib invalidcontinue.obj > PTHREAD_LIBS = > lib = > ifndef DEBUG