Subject: Re: [PATCH v2 1/5] config.mak.uname: support MSys2

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

Am 14.01.2016 um 17:51 schrieb Johannes Schindelin:
> diff --git a/config.mak.uname b/config.mak.uname
> index f34dcaa..b0592c1 100644
> --- a/config.mak.uname
> +++ b/config.mak.uname
> @@ -518,7 +518,7 @@ ifneq (,$(findstring MINGW,$(uname_S)))
>   	NO_INET_NTOP = YesPlease
>   	NO_POSIX_GOODIES = UnfortunatelyYes
>   	DEFAULT_HELP_FORMAT = html
> -	COMPAT_CFLAGS += -D__USE_MINGW_ACCESS -D_USE_32BIT_TIME_T -DNOGDI -Icompat -Icompat/win32
> +	COMPAT_CFLAGS += -D_USE_32BIT_TIME_T -DNOGDI -Icompat -Icompat/win32
>   	COMPAT_CFLAGS += -DSTRIP_EXTENSION=\".exe\"
>   	COMPAT_OBJS += compat/mingw.o compat/winansi.o \
>   		compat/win32/pthread.o compat/win32/syslog.o \
> @@ -541,8 +541,25 @@ ifneq (,$(wildcard ../THIS_IS_MSYSGIT))
>   	INTERNAL_QSORT = YesPlease
>   	HAVE_LIBCHARSET_H = YesPlease
>   	NO_GETTEXT = YesPlease
> +	COMPAT_CLFAGS += -D__USE_MINGW_ACCESS
>   else
> -	NO_CURL = YesPlease
> +	ifeq ($(shell expr "$(uname_R)" : '2\.'),2)
> +		# MSys2
> +		CC = gcc
> +		prefix = /mingw32

Hmm. Setting the prefix like this is certainly ideal for Git for Windows 
(the installer), but it is very uncommon to set the prefix in 
config.mak.uname.

> +		COMPAT_CFLAGS += -D__USE_MINGW_ANSI_STDIO=0
> +		INSTALL = /bin/install
> +		NO_R_TO_GCC_LINKER = YesPlease
> +		INTERNAL_QSORT = YesPlease
> +		HAVE_LIBCHARSET_H = YesPlease
> +		NO_GETTEXT = YesPlease
> +		USE_LIBPCRE= YesPlease
> +		NO_CURL =
> +		USE_NED_ALLOCATOR = YesPlease

USE_NED_ALLOCATOR is already set in the common section (line 510).

> +	else
> +		COMPAT_CFLAGS += -D__USE_MINGW_ANSI_STDIO

Did you mean to set -D__USE_MINGW_ACCESS here? But, as I noticed, it 
doesn't make a whole lot of a difference; my build (which picks this 
branch, if I'm not mistaken) still passes the test suite.

> +		NO_CURL = YesPlease
> +	endif
>   endif
>   endif
>   ifeq ($(uname_S),QNX)

-- Hannes