diff -Naur ExtUtils-MakeMaker-7.34-orig/bundled/ExtUtils-Install/ExtUtils/Install.pm ExtUtils-MakeMaker-7.34/bundled/ExtUtils-Install/ExtUtils/Install.pm
--- ExtUtils-MakeMaker-7.34-orig/bundled/ExtUtils-Install/ExtUtils/Install.pm	2017-05-20 16:01:13.000000000 +0300
+++ ExtUtils-MakeMaker-7.34/bundled/ExtUtils-Install/ExtUtils/Install.pm	2018-08-08 09:55:08.182378300 +0300
@@ -98,7 +98,7 @@
 my $Is_VMS     = $^O eq 'VMS';
 my $Is_MacPerl = $^O eq 'MacOS';
 my $Is_Win32   = $^O eq 'MSWin32';
-my $Is_cygwin  = $^O eq 'cygwin';
+my $Is_cygwin  = ($^O eq 'cygwin' || $^O eq 'msys');
 my $CanMoveAtBoot = ($Is_Win32 || $Is_cygwin);
 
 
diff -Naur ExtUtils-MakeMaker-7.34-orig/bundled/File-Temp/File/Temp.pm ExtUtils-MakeMaker-7.34/bundled/File-Temp/File/Temp.pm
--- ExtUtils-MakeMaker-7.34-orig/bundled/File-Temp/File/Temp.pm	2016-04-27 23:08:36.000000000 +0300
+++ ExtUtils-MakeMaker-7.34/bundled/File-Temp/File/Temp.pm	2018-08-08 09:55:08.187378600 +0300
@@ -824,7 +824,7 @@
   return 1 if $level == STANDARD;
 
   # Currently, the systems that can do HIGH or MEDIUM are identical
-  if ( $^O eq 'MSWin32' || $^O eq 'os2' || $^O eq 'cygwin' || $^O eq 'dos' || $^O eq 'MacOS' || $^O eq 'mpeix') {
+  if ( $^O eq 'MSWin32' || $^O eq 'os2' || $^O eq 'cygwin' || $^O eq 'msys' || $^O eq 'dos' || $^O eq 'MacOS' || $^O eq 'mpeix') {
     return 0;
   } else {
     return 1;
@@ -1978,7 +1978,7 @@
     #   on Win9x the link count remains 1
     # On NFS the link count may still be 1 but we cant know that
     # we are on NFS
-    return ( $fh[3] == 0 or $^O eq 'cygwin' ? 1 : 0);
+    return ( $fh[3] == 0 or ($^O eq 'cygwin' || $^O eq 'msys') ? 1 : 0);
 
   } else {
     _deferred_unlink($fh, $path, 0);
diff -Naur ExtUtils-MakeMaker-7.34-orig/lib/ExtUtils/Liblist/Kid.pm ExtUtils-MakeMaker-7.34/lib/ExtUtils/Liblist/Kid.pm
--- ExtUtils-MakeMaker-7.34-orig/lib/ExtUtils/Liblist/Kid.pm	2018-03-19 13:21:54.000000000 +0300
+++ ExtUtils-MakeMaker-7.34/lib/ExtUtils/Liblist/Kid.pm	2018-08-08 09:58:54.782339100 +0300
@@ -177,6 +177,8 @@
             }
             elsif ( $^O eq 'cygwin' && -f ( $fullname = "$thispth/$thislib.dll" ) ) {
             }
+            elsif ( $^O eq 'msys' && -f ( $fullname = "$thispth/$thislib.dll" ) ) {
+            }
             elsif ( -f ( $fullname = "$thispth/Slib$thislib$Config_libext" ) ) {
             }
             elsif ($^O eq 'dgux'
diff -Naur ExtUtils-MakeMaker-7.34-orig/lib/ExtUtils/MM.pm ExtUtils-MakeMaker-7.34/lib/ExtUtils/MM.pm
--- ExtUtils-MakeMaker-7.34-orig/lib/ExtUtils/MM.pm	2018-03-19 13:21:54.000000000 +0300
+++ ExtUtils-MakeMaker-7.34/lib/ExtUtils/MM.pm	2018-08-08 09:55:08.195379000 +0300
@@ -58,7 +58,7 @@
     _is_win95() ? $Is{Win95} = 1 : $Is{Win32} = 1;
 }
 $Is{UWIN}   = $^O =~ /^uwin(-nt)?$/;
-$Is{Cygwin} = $^O eq 'cygwin';
+$Is{Cygwin} = ($^O eq 'cygwin' || $^O eq 'msys');
 $Is{NW5}    = $Config{osname} eq 'NetWare';  # intentional
 $Is{BeOS}   = ($^O =~ /beos/i or $^O eq 'haiku');
 $Is{DOS}    = $^O eq 'dos';
diff -Naur ExtUtils-MakeMaker-7.34-orig/lib/ExtUtils/MM_Cygwin.pm ExtUtils-MakeMaker-7.34/lib/ExtUtils/MM_Cygwin.pm
--- ExtUtils-MakeMaker-7.34-orig/lib/ExtUtils/MM_Cygwin.pm	2018-03-19 13:21:54.000000000 +0300
+++ ExtUtils-MakeMaker-7.34/lib/ExtUtils/MM_Cygwin.pm	2018-08-08 10:02:56.196147100 +0300
@@ -34,7 +34,7 @@
 =cut
 
 sub os_flavor {
-    return('Unix', 'Cygwin');
+    return('Unix', 'Msys');
 }
 
 =item cflags
@@ -134,7 +134,7 @@
     return $s unless %{$self->{XS}};
 
     # do an ephemeral rebase so the new DLL fits to the current rebase map
-    $s .= "\t/bin/find \$\(INST_ARCHLIB\)/auto -xdev -name \\*.$self->{DLEXT} | /bin/rebase -sOT -" if (( $Config{myarchname} eq 'i686-cygwin' ) and not ( exists $ENV{CYGPORT_PACKAGE_VERSION} ));
+    $s .= "\t/bin/find \$\(INST_ARCHLIB\)/auto -xdev -name \\*.$self->{DLEXT} | /bin/rebase -sOT -" if (( $Config{myarchname} eq 'i686-msys' ) and not ( exists $ENV{CYGPORT_PACKAGE_VERSION} ));
     $s;
 }
 
@@ -154,7 +154,7 @@
     my $INSTALLLIB = $self->{"INSTALL". ($INSTALLDIRS eq 'perl' ? 'ARCHLIB' : uc($INSTALLDIRS)."ARCH")};
     my $dop = "\$\(DESTDIR\)$INSTALLLIB/auto/";
     my $dll = "$dop/$self->{FULLEXT}/$self->{BASEEXT}.$self->{DLEXT}";
-    $s =~ s|^(pure_install :: pure_\$\(INSTALLDIRS\)_install\n\t)\$\(NOECHO\) \$\(NOOP\)\n|$1\$(CHMOD) \$(PERM_RWX) $dll\n\t/bin/find $dop -xdev -name \\*.$self->{DLEXT} \| /bin/rebase -sOT -\n|m if (( $Config{myarchname} eq 'i686-cygwin') and not ( exists $ENV{CYGPORT_PACKAGE_VERSION} ));
+    $s =~ s|^(pure_install :: pure_\$\(INSTALLDIRS\)_install\n\t)\$\(NOECHO\) \$\(NOOP\)\n|$1\$(CHMOD) \$(PERM_RWX) $dll\n\t/bin/find $dop -xdev -name \\*.$self->{DLEXT} \| /bin/rebase -sOT -\n|m if (( $Config{myarchname} eq 'i686-msys') and not ( exists $ENV{CYGPORT_PACKAGE_VERSION} ));
     $s;
 }
 
diff -Naur ExtUtils-MakeMaker-7.34-orig/t/03-xsstatic.t ExtUtils-MakeMaker-7.34/t/03-xsstatic.t
--- ExtUtils-MakeMaker-7.34-orig/t/03-xsstatic.t	2018-02-24 16:15:13.000000000 +0300
+++ ExtUtils-MakeMaker-7.34/t/03-xsstatic.t	2018-08-08 09:56:57.009602900 +0300
@@ -19,7 +19,7 @@
 plan skip_all => "ExtUtils::CBuilder not installed or couldn't find a compiler"
   unless have_compiler();
 plan skip_all => 'Shared perl library' if $Config{useshrplib} eq 'true';
-plan skip_all => $^O if $^O =~ m!^(MSWin32|cygwin|haiku|darwin)$!;
+plan skip_all => $^O if $^O =~ m!^(MSWin32|cygwin|msys|haiku|darwin)$!;
 plan skip_all => 'Skipped when not PERL_CORE nor in git repo' unless $ENV{PERL_CORE} or $release;
 my @tests = list_static();
 plan skip_all => "No tests" unless @tests;
diff -Naur ExtUtils-MakeMaker-7.34-orig/t/eu_command.t ExtUtils-MakeMaker-7.34/t/eu_command.t
--- ExtUtils-MakeMaker-7.34-orig/t/eu_command.t	2017-05-20 16:01:13.000000000 +0300
+++ ExtUtils-MakeMaker-7.34/t/eu_command.t	2018-08-08 09:55:08.203379500 +0300
@@ -95,7 +95,7 @@
     SKIP: {
         if ($^O eq 'amigaos' || $^O eq 'os2' || $^O eq 'MSWin32' ||
             $^O eq 'NetWare' || $^O eq 'dos' || $^O eq 'cygwin'  ||
-            $^O eq 'MacOS'
+            $^O eq 'msys'    || $^O eq 'MacOS'
            ) {
             skip( "different file permission semantics on $^O", 3);
         }
@@ -135,7 +135,7 @@
     SKIP: {
         if ($^O eq 'amigaos' || $^O eq 'os2' || $^O eq 'MSWin32' ||
             $^O eq 'NetWare' || $^O eq 'dos' || $^O eq 'cygwin'  ||
-            $^O eq 'MacOS'   || $^O eq 'haiku'
+            $^O eq 'msys'    || $^O eq 'MacOS'   || $^O eq 'haiku'
            ) {
             skip( "different file permission semantics on $^O", 5);
         }
diff -Naur ExtUtils-MakeMaker-7.34-orig/t/Mkbootstrap.t ExtUtils-MakeMaker-7.34/t/Mkbootstrap.t
--- ExtUtils-MakeMaker-7.34-orig/t/Mkbootstrap.t	2016-04-27 23:08:36.000000000 +0300
+++ ExtUtils-MakeMaker-7.34/t/Mkbootstrap.t	2018-08-08 10:04:05.208094400 +0300
@@ -75,7 +75,7 @@
 	chmod 0444, 'dasboot.bs';
 
 	SKIP: {
-	    skip("cannot write readonly files", 1) if -w 'dasboot.bs' || $^O eq 'cygwin';
+	    skip("cannot write readonly files", 1) if -w 'dasboot.bs' || $^O eq 'cygwin' || $^O eq 'msys';
 
 	    eval{ Mkbootstrap('dasboot', 1) };
 	    like( $@, qr/Unable to open dasboot\.bs/, 'should die given bad filename' );
diff -Naur ExtUtils-MakeMaker-7.34-orig/t/MM_Cygwin.t ExtUtils-MakeMaker-7.34/t/MM_Cygwin.t
--- ExtUtils-MakeMaker-7.34-orig/t/MM_Cygwin.t	2016-04-27 23:08:36.000000000 +0300
+++ ExtUtils-MakeMaker-7.34/t/MM_Cygwin.t	2018-08-08 09:55:08.207379700 +0300
@@ -9,7 +9,7 @@
 use Test::More;
 
 BEGIN {
-	if ($^O =~ /cygwin/i) {
+	if ($^O =~ /cygwin|msys/i) {
 		plan tests => 14;
 	} else {
 		plan skip_all => "This is not cygwin";
diff -Naur ExtUtils-MakeMaker-7.34-orig/t/MM_Unix.t ExtUtils-MakeMaker-7.34/t/MM_Unix.t
--- ExtUtils-MakeMaker-7.34-orig/t/MM_Unix.t	2018-01-16 13:25:57.000000000 +0300
+++ ExtUtils-MakeMaker-7.34/t/MM_Unix.t	2018-08-08 09:55:08.209379800 +0300
@@ -8,7 +8,7 @@
 BEGIN {
     use Test::More;
 
-    if( $^O =~ /^VMS|os2|MacOS|MSWin32|cygwin|beos|netware$/i ) {
+    if( $^O =~ /^VMS|os2|MacOS|MSWin32|cygwin|msys|beos|netware$/i ) {
         plan skip_all => 'Non-Unix platform';
     }
     else {
