Subject: Re: [PATCH v2 0/5] Fix compile errors with MSys2

From: Johannes Sixt <[email-masked]>
Date: Thu, 14 Jan 2016 22:57:30 +0100

Am 14.01.2016 um 17:51 schrieb Johannes Schindelin:
> Git for Windows 2.x is based on MSys2, and its first official version
> was released already almost half a year ago, yet it is still impossible
> even to compile Git from the official, platform-independent Git source
> code.
>
> This patch series merely fixes the compile errors, and will be followed
> by other patch series that fix the compile warnings and test failures.
> The idea is to move all Windows-specific patches of Git for Windows'
> fork to upstream Git proper.
>
> Relative to v1, I only removed the guards about the "#undef
> ReadWriteBarrier".
>
> Johannes Schindelin (5):
>    config.mak.uname: support MSys2
>    config.mak.uname: supporting 64-bit MSys2
>    nedmalloc: allow compiling with MSys2's compiler
>    compat/mingw: support MSys2-based MinGW build
>    compat/winansi: support compiling with MSys2
>
>   compat/mingw.h              | 24 +++++++++++++++++++++++-
>   compat/nedmalloc/malloc.c.h |  4 ++++
>   compat/winansi.c            |  2 ++
>   config.mak.uname            | 31 ++++++++++++++++++++++++++++---
>   4 files changed, 57 insertions(+), 4 deletions(-)
>
> Interdiff vs v1:
>
>   diff --git a/compat/nedmalloc/malloc.c.h b/compat/nedmalloc/malloc.c.h
>   index 18634e3..bf70037 100644
>   --- a/compat/nedmalloc/malloc.c.h
>   +++ b/compat/nedmalloc/malloc.c.h
>   @@ -1385,9 +1385,7 @@ LONG __cdecl _InterlockedExchange(LONG volatile *Target, LONG Value);
>
>      /*** Atomic operations ***/
>      #if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) > 40100
>   -    #ifdef __MINGW64_VERSION_MAJOR
>   -      #undef _ReadWriteBarrier
>   -    #endif
>   +    #undef _ReadWriteBarrier
>        #define _ReadWriteBarrier() __sync_synchronize()
>      #else
>        static __inline__ __attribute__((always_inline)) long __sync_lock_test_and_set(volatile long * const Target, const long Value)
>

It is very considerate of you to keep compatibility with the old MSYS 
build environment, which I'm still using. (The new Git for Windows build 
environment is already on my disk, but I haven't found time to get 
familiar with it.) So, it doesn't mean a whole lot, unfortunatley, when 
I report that I've tested v1, and that it passes the test suite, because 
I've exercised almost none of the new code.

-- Hannes