git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/2] mingw: remove msysGit/MSYS1 support

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 18, 2022, 02:11 UTC
Message-ID
<xmqqsfhdxxyj.fsf@gitster.g>
In-Reply-To
<e6d3d280a4f9216aa6e9c3c83a38b0fb8ba3a8a1.1670274213.git.gitgitgadget@gmail.com>
"Harshil-Jani via GitGitGadget" <gitgitgadget@gmail.com> writes:
> From: Harshil-Jani <harshiljani2002@gmail.com>
>
> The msysGit (i.e. Git for Windows 1.x' SDK) is no longer used and the
> last known user for MSys1 + MinGW has switched to MSys2.

It is curious that we can speak with such a certainty of the lack of users of such a popular project. References?

Show 8 quoted lines
> So there was no
> reason to keep the msysGit/MSys1 config section. This Patch intends to
> remove the support of both the builds and throw an error on
> execution.
>
> The output of `uname -r` if returns us with '1.' then it relates with MSys1
> build environment and msysGit which we don't want to continue ahead and thus
> an error can be expected.

The above clearly explains what is written in the patch text, but the proposed log message does not explain what ../THIS_IS_MSYSGIT used to guard and why now we can remove it.

Show 7 quoted lines
> The MSYS2 is currently used into the MinGW so we can get that part
> running directly without any conditionals required.
>
> Signed-off-by: Harshil-Jani <harshiljani2002@gmail.com>
> ---
>  config.mak.uname | 85 ++++++++++++++++++++----------------------------
>  1 file changed, 35 insertions(+), 50 deletions(-)

Thanks. It always is good to see more lines go away ;-) but these two patches need to be explained a bit better and supported by folks who have been active on Windows port of the project.

Show 108 quoted lines
> diff --git a/config.mak.uname b/config.mak.uname
> index 377667c4bbc..965ec530837 100644
> --- a/config.mak.uname
> +++ b/config.mak.uname
> @@ -623,6 +623,9 @@ ifeq ($(uname_S),NONSTOP_KERNEL)
>  	SHELL_PATH = /usr/coreutils/bin/bash
>  endif
>  ifeq ($(uname_S),MINGW)
> +	ifeq ($(shell expr "$(uname_R)" : '1\.'),2)
> +		$(error "Building with MSys is no longer supported")
> +	endif
>  	pathsep = ;
>  	HAVE_ALLOCA_H = YesPlease
>  	NO_PREAD = YesPlease
> @@ -676,61 +679,43 @@ ifeq ($(uname_S),MINGW)
>  	RC = windres -O coff
>  	NATIVE_CRLF = YesPlease
>  	X = .exe
> -ifneq (,$(wildcard ../THIS_IS_MSYSGIT))
> -	htmldir = doc/git/html/
> -	prefix =
> +	# MSys2
> +	prefix = /usr/
> +	# Enable DEP
> +	BASIC_LDFLAGS += -Wl,--nxcompat
> +	# Enable ASLR (unless debugging)
> +	ifneq (,$(findstring -O,$(filter-out -O0 -Og,$(CFLAGS))))
> +		BASIC_LDFLAGS += -Wl,--dynamicbase
> +	endif
> +	ifeq (MINGW32,$(MSYSTEM))
> +		prefix = /mingw32
> +		HOST_CPU = i686
> +		BASIC_LDFLAGS += -Wl,--pic-executable,-e,_mainCRTStartup
> +	endif
> +	ifeq (MINGW64,$(MSYSTEM))
> +		prefix = /mingw64
> +		HOST_CPU = x86_64
> +		BASIC_LDFLAGS += -Wl,--pic-executable,-e,mainCRTStartup
> +	else
> +		COMPAT_CFLAGS += -D_USE_32BIT_TIME_T
> +		BASIC_LDFLAGS += -Wl,--large-address-aware
> +	endif
> +	CC = gcc
> +	COMPAT_CFLAGS += -D__USE_MINGW_ANSI_STDIO=0 -DDETECT_MSYS_TTY \
> +		-fstack-protector-strong
> +	EXTLIBS += -lntdll
>  	INSTALL = /bin/install
> -	EXTLIBS += /mingw/lib/libz.a
>  	INTERNAL_QSORT = YesPlease
>  	HAVE_LIBCHARSET_H = YesPlease
> -	NO_GETTEXT = YesPlease
> -	NO_PYTHON = YesPlease
> -	COMPAT_CFLAGS += -D__USE_MINGW_ACCESS
> -else
> -	ifneq ($(shell expr "$(uname_R)" : '1\.'),2)
> -		# MSys2
> -		prefix = /usr/
> -		# Enable DEP
> -		BASIC_LDFLAGS += -Wl,--nxcompat
> -		# Enable ASLR (unless debugging)
> -		ifneq (,$(findstring -O,$(filter-out -O0 -Og,$(CFLAGS))))
> -			BASIC_LDFLAGS += -Wl,--dynamicbase
> -		endif
> -		ifeq (MINGW32,$(MSYSTEM))
> -			prefix = /mingw32
> -			HOST_CPU = i686
> -			BASIC_LDFLAGS += -Wl,--pic-executable,-e,_mainCRTStartup
> -		endif
> -		ifeq (MINGW64,$(MSYSTEM))
> -			prefix = /mingw64
> -			HOST_CPU = x86_64
> -			BASIC_LDFLAGS += -Wl,--pic-executable,-e,mainCRTStartup
> -		else
> -			COMPAT_CFLAGS += -D_USE_32BIT_TIME_T
> -			BASIC_LDFLAGS += -Wl,--large-address-aware
> -		endif
> -		CC = gcc
> -		COMPAT_CFLAGS += -D__USE_MINGW_ANSI_STDIO=0 -DDETECT_MSYS_TTY \
> -			-fstack-protector-strong
> -		EXTLIBS += -lntdll
> -		INSTALL = /bin/install
> -		INTERNAL_QSORT = YesPlease
> -		HAVE_LIBCHARSET_H = YesPlease
> -		USE_GETTEXT_SCHEME = fallthrough
> -		USE_LIBPCRE = YesPlease
> -		USE_NED_ALLOCATOR = YesPlease
> -		ifeq (/mingw64,$(subst 32,64,$(prefix)))
> -			# Move system config into top-level /etc/
> -			ETC_GITCONFIG = ../etc/gitconfig
> -			ETC_GITATTRIBUTES = ../etc/gitattributes
> -		endif
> -	else
> -		COMPAT_CFLAGS += -D__USE_MINGW_ANSI_STDIO
> -		NO_CURL = YesPlease
> -		NO_PYTHON = YesPlease
> +	USE_GETTEXT_SCHEME = fallthrough
> +	USE_LIBPCRE = YesPlease
> +	USE_NED_ALLOCATOR = YesPlease
> +	ifeq (/mingw64,$(subst 32,64,$(prefix)))
> +		# Move system config into top-level /etc/
> +		ETC_GITCONFIG = ../etc/gitconfig
> +		ETC_GITATTRIBUTES = ../etc/gitattributes
>  	endif
>  endif
> -endif
>  ifeq ($(uname_S),QNX)
>  	COMPAT_CFLAGS += -DSA_RESTART=0
>  	EXPAT_NEEDS_XMLPARSE_H = YesPlease
Previous: Harshil-Jani via GitGitGadgetNext: Junio C Hamano
Message 5 of 16 in “Remove MSys Support”
  1. 0/2 Remove MSys SupportHarshil Jani via GitGitGadget, Dec 5, 2022
  2. 1/2 mingw: remove duplicate `USE_NED_ALLOCATOR` directiveHarshil-Jani via GitGitGadget, Dec 5, 2022
  3. Junio C HamanoDec 18, 2022
  4. 2/2 mingw: remove msysGit/MSYS1 supportHarshil-Jani via GitGitGadget, Dec 5, 2022
  5. Junio C HamanoDec 18, 2022
  6. Junio C HamanoDec 18, 2022
  7. Johannes SchindelinJan 9, 2023
  8. Junio C HamanoJan 9, 2023
  9. Junio C HamanoDec 18, 2022
  10. Johannes SchindelinJan 9, 2023
  11. Junio C HamanoJan 9, 2023
  12. 0/2 Remove MSys SupportHarshil Jani via GitGitGadget, Feb 2, 2023
  13. 1/2 mingw: remove duplicate `USE_NED_ALLOCATOR` directiveHarshil-Jani via GitGitGadget, Feb 2, 2023
  14. 2/2 mingw: remove msysGit/MSYS1 supportHarshil-Jani via GitGitGadget, Feb 2, 2023
  15. Johannes SchindelinFeb 2, 2023
  16. Junio C HamanoFeb 2, 2023

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.