From 92f63d2b055fea3070108fe5015b8158e1c923db Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Fri, 19 Jul 2013 19:08:28 -0400 Subject: [PATCH 1/4] Cygwin 1.7 needs compat/regex Cygwin v1.7 uses the regex library from newlib which does not pass git's tests, so don't use it. This fixes failures in t4018 and t4034. Continue to use the platform supplied regex library for earlier versions. Signed-off-by: Mark Levedahl Signed-off-by: Junio C Hamano --- config.mak.uname | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config.mak.uname b/config.mak.uname index 7ac541e9eb..4606970073 100644 --- a/config.mak.uname +++ b/config.mak.uname @@ -159,6 +159,8 @@ ifeq ($(uname_O),Cygwin) NO_SYMLINK_HEAD = YesPlease NO_IPV6 = YesPlease OLD_ICONV = UnfortunatelyYes + else + NO_REGEX = UnfortunatelyYes endif NO_THREAD_SAFE_PREAD = YesPlease NEEDS_LIBICONV = YesPlease From 103d530f775d513ff9ebc148a9b54a8677a01790 Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Fri, 19 Jul 2013 19:08:29 -0400 Subject: [PATCH 2/4] Cygwin 1.7 has thread-safe pread Per http://cygwin.com/ml/cygwin/2012-07/msg00331.html , cygwin 1.7 was modified to explicitly support git's use of pread, so make this the default. Do not affect earlier cygwin versions. Signed-off-by: Mark Levedahl Signed-off-by: Junio C Hamano --- config.mak.uname | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.mak.uname b/config.mak.uname index 4606970073..ce0390db55 100644 --- a/config.mak.uname +++ b/config.mak.uname @@ -159,10 +159,10 @@ ifeq ($(uname_O),Cygwin) NO_SYMLINK_HEAD = YesPlease NO_IPV6 = YesPlease OLD_ICONV = UnfortunatelyYes + NO_THREAD_SAFE_PREAD = YesPlease else NO_REGEX = UnfortunatelyYes endif - NO_THREAD_SAFE_PREAD = YesPlease NEEDS_LIBICONV = YesPlease NO_FAST_WORKING_DIRECTORY = UnfortunatelyYes NO_TRUSTABLE_FILEMODE = UnfortunatelyYes From f593ef77792c36eeb1b92ed3661ed284502afdfb Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Fri, 19 Jul 2013 19:08:30 -0400 Subject: [PATCH 3/4] Cygwin 1.7 supports mmap git has shipped for years with MMAP enabled in the stock distribution, there are no reports of problems / failures on the list relating to this. Leave the default as-is on v1.5 due to lack of knowlege of this working on earlier Cygwin. Signed-off-by: Mark Levedahl Signed-off-by: Junio C Hamano --- config.mak.uname | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config.mak.uname b/config.mak.uname index ce0390db55..257b1ad2a1 100644 --- a/config.mak.uname +++ b/config.mak.uname @@ -160,6 +160,10 @@ ifeq ($(uname_O),Cygwin) NO_IPV6 = YesPlease OLD_ICONV = UnfortunatelyYes NO_THREAD_SAFE_PREAD = YesPlease + # There are conflicting reports about this. + # On some boxes NO_MMAP is needed, and not so elsewhere. + # Try commenting this out if you suspect MMAP is more efficient + NO_MMAP = YesPlease else NO_REGEX = UnfortunatelyYes endif @@ -167,10 +171,6 @@ ifeq ($(uname_O),Cygwin) NO_FAST_WORKING_DIRECTORY = UnfortunatelyYes NO_TRUSTABLE_FILEMODE = UnfortunatelyYes NO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease - # There are conflicting reports about this. - # On some boxes NO_MMAP is needed, and not so elsewhere. - # Try commenting this out if you suspect MMAP is more efficient - NO_MMAP = YesPlease X = .exe COMPAT_OBJS += compat/cygwin.o UNRELIABLE_FSTAT = UnfortunatelyYes From c28facd216b501d41ca76f040d0ce7749075aba0 Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Fri, 19 Jul 2013 19:08:27 -0400 Subject: [PATCH 4/4] cygwin: stop forcing core.filemode=false We force core.filemode=false since c869753e (Force core.filemode to false on Cygwin., 2006-12-30), even when the repository is on a filesystem on which Cygwin can give us trustable filemodes, because many native Windows applications the users use to edit files in the working tree tend to (re)create files with executable bit randomly set or reset. However, binary distribution of Git that is supplied by the downstream project to its users has been built without this consideration. Drop NO_TRUSTABLE_FILEMODE from our default configuration so that hand-compiled Git out of box will match theirs. Signed-off-by: Mark Levedahl Signed-off-by: Junio C Hamano --- config.mak.uname | 1 - 1 file changed, 1 deletion(-) diff --git a/config.mak.uname b/config.mak.uname index 257b1ad2a1..b45b910759 100644 --- a/config.mak.uname +++ b/config.mak.uname @@ -169,7 +169,6 @@ ifeq ($(uname_O),Cygwin) endif NEEDS_LIBICONV = YesPlease NO_FAST_WORKING_DIRECTORY = UnfortunatelyYes - NO_TRUSTABLE_FILEMODE = UnfortunatelyYes NO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease X = .exe COMPAT_OBJS += compat/cygwin.o