diff -Naur binutils-2.30.orig/bfd/acinclude.m4 binutils-2.30/bfd/acinclude.m4 --- binutils-2.30.orig/bfd/acinclude.m4 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/bfd/acinclude.m4 2018-06-13 08:19:13.199163100 +0300 @@ -21,7 +21,7 @@ [AC_REQUIRE([AC_CANONICAL_TARGET]) case "${host}" in changequote(,)dnl -*-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*) +*-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-msys* | *-*-windows*) changequote([,])dnl AC_DEFINE(USE_BINARY_FOPEN, 1, [Use b modifier when opening binary files?]) ;; esac])dnl diff -Naur binutils-2.30.orig/bfd/config.bfd binutils-2.30/bfd/config.bfd --- binutils-2.30.orig/bfd/config.bfd 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/bfd/config.bfd 2018-06-13 08:19:13.199163100 +0300 @@ -804,7 +804,7 @@ targ_archs="$targ_archs bfd_arm_arch" want64=true ;; - x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep | x86_64-*-cygwin) + x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep | x86_64-*-cygwin | x86_64-*-msys*) targ_defvec=x86_64_pe_vec targ_selvecs="x86_64_pe_vec x86_64_pei_vec x86_64_pe_be_vec x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec i386_pe_vec i386_pei_vec i386_elf32_vec iamcu_elf32_vec" want64=true @@ -862,7 +862,7 @@ targ_defvec=i386_elf32_vec targ_selvecs="iamcu_elf32_vec i386_coff_vec" ;; - i[3-7]86-*-mingw32* | i[3-7]86-*-cygwin* | i[3-7]86-*-winnt | i[3-7]86-*-pe) + i[3-7]86-*-mingw32* | i[3-7]86-*-cygwin* | i[3-7]86-*-msys* | i[3-7]86-*-winnt | i[3-7]86-*-pe) targ_defvec=i386_pe_vec targ_selvecs="i386_pe_vec i386_pei_vec i386_elf32_vec iamcu_elf32_vec" targ_underscore=yes @@ -1438,7 +1438,7 @@ targ_selvecs="rs6000_xcoff_vec powerpc_elf32_vec powerpc_boot_vec" targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec" ;; - powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin*) + powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin* | powerpcle-*-msys*) targ_defvec=powerpc_pe_le_vec targ_selvecs="powerpc_pei_le_vec powerpc_pei_vec powerpc_pe_le_vec powerpc_pe_vec" ;; diff -Naur binutils-2.30.orig/bfd/configure binutils-2.30/bfd/configure --- binutils-2.30.orig/bfd/configure 2018-01-27 17:58:29.000000000 +0300 +++ binutils-2.30/bfd/configure 2018-06-13 08:19:13.199163100 +0300 @@ -5997,7 +5997,7 @@ lt_cv_sys_max_cmd_len=-1; ;; - cygwin* | mingw* | cegcc*) + cygwin* | msys* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, @@ -6339,7 +6339,7 @@ lt_cv_file_magic_test_file=/shlib/libc.so ;; -cygwin*) +cygwin* | msys*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' @@ -6919,7 +6919,7 @@ aix*) symcode='[BCDT]' ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) @@ -8503,7 +8503,7 @@ # PIC is the default for these OSes. ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | cygwin* | msys* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style @@ -8585,7 +8585,7 @@ fi ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | cygwin* | msys* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' @@ -9047,7 +9047,7 @@ extract_expsyms_cmds= case $host_os in - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. @@ -9162,7 +9162,7 @@ fi ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' @@ -9593,7 +9593,7 @@ export_dynamic_flag_spec=-rdynamic ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is @@ -10494,14 +10494,14 @@ # libtool to hard-code these into programs ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + yes,cygwin* | yes,msys* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -10525,6 +10525,12 @@ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; + msys*) + # Msys DLLs use 'msys-' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/msys-/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' @@ -11161,7 +11167,7 @@ lt_cv_dlopen_libs= ;; - cygwin*) + cygwin* | msys*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; @@ -13855,7 +13861,7 @@ case "${host}" in -*-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*) +*-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-msys* | *-*-windows*) $as_echo "#define USE_BINARY_FOPEN 1" >>confdefs.h ;; @@ -14031,7 +14037,7 @@ LIBM= case $host in -*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-msys* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) @@ -14181,7 +14187,10 @@ SHARED_LDFLAGS="-no-undefined" SHARED_LIBADD="-L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin -lkernel32" ;; - + *-*-msys*) + SHARED_LDFLAGS="-no-undefined" + SHARED_LIBADD="-L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lmsys-2.0 -lkernel32" + ;; # Hack to build or1k-src on OSX or1k*-*-darwin*) SHARED_LIBADD="-L`pwd`/../libiberty/pic -L`pwd`/../intl -liberty -lintl" diff -Naur binutils-2.30.orig/bfd/configure.ac binutils-2.30/bfd/configure.ac --- binutils-2.30.orig/bfd/configure.ac 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/bfd/configure.ac 2018-06-13 08:19:13.199163100 +0300 @@ -263,7 +263,10 @@ SHARED_LDFLAGS="-no-undefined" SHARED_LIBADD="-L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin -lkernel32" ;; - + *-*-msys*) + SHARED_LDFLAGS="-no-undefined" + SHARED_LIBADD="-L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lmsys-2.0 -lkernel32" + ;; # Hack to build or1k-src on OSX or1k*-*-darwin*) SHARED_LIBADD="-L`pwd`/../libiberty/pic -L`pwd`/../intl -liberty -lintl" diff -Naur binutils-2.30.orig/binutils/configure binutils-2.30/binutils/configure --- binutils-2.30.orig/binutils/configure 2018-01-27 18:02:51.000000000 +0300 +++ binutils-2.30/binutils/configure 2018-06-13 08:19:13.214763200 +0300 @@ -5764,7 +5764,7 @@ lt_cv_sys_max_cmd_len=-1; ;; - cygwin* | mingw* | cegcc*) + cygwin* | msys* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, @@ -6106,7 +6106,7 @@ lt_cv_file_magic_test_file=/shlib/libc.so ;; -cygwin*) +cygwin* | msys*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' @@ -6686,7 +6686,7 @@ aix*) symcode='[BCDT]' ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) @@ -8301,7 +8301,7 @@ # PIC is the default for these OSes. ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | cygwin* | msys* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style @@ -8383,7 +8383,7 @@ fi ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | cygwin* | msys* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' @@ -8845,7 +8845,7 @@ extract_expsyms_cmds= case $host_os in - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. @@ -8960,7 +8960,7 @@ fi ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' @@ -9391,7 +9391,7 @@ export_dynamic_flag_spec=-rdynamic ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is @@ -10292,14 +10292,14 @@ # libtool to hard-code these into programs ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + yes,cygwin* | yes,msys* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -10323,6 +10323,12 @@ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; + msys*) + # Msys DLLs use 'msys-' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/msys-/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' @@ -10959,7 +10965,7 @@ lt_cv_dlopen_libs= ;; - cygwin*) + cygwin* | msys*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; @@ -13653,7 +13659,7 @@ case "${host}" in -*-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*) +*-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-msys* | *-*-windows*) $as_echo "#define USE_BINARY_FOPEN 1" >>confdefs.h ;; @@ -14505,7 +14511,7 @@ BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' ;; - x86_64-*-mingw* | x86_64-*-cygwin*) + x86_64-*-mingw* | x86_64-*-cygwin* | x86_64-*-msys*) BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' if test -z "$DLLTOOL_DEFAULT"; then DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MX86_64" @@ -14515,7 +14521,7 @@ BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)' ;; - i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32** | i[3-7]86-*-netbsdpe*) + i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-msys* | i[3-7]86-*-mingw32** | i[3-7]86-*-netbsdpe*) BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' if test -z "$DLLTOOL_DEFAULT"; then DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386" @@ -14537,7 +14543,7 @@ powerpc*-aix[5-9].*) OBJDUMP_DEFS="-DAIX_WEAK_SUPPORT" ;; - powerpc*-*-pe* | powerpc*-*-cygwin*) + powerpc*-*-pe* | powerpc*-*-cygwin* | powerpc*-*-msys*) BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' if test -z "$DLLTOOL_DEFAULT"; then DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_PPC" diff -Naur binutils-2.30.orig/binutils/configure.ac binutils-2.30/binutils/configure.ac --- binutils-2.30.orig/binutils/configure.ac 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/binutils/configure.ac 2018-06-13 08:19:13.214763200 +0300 @@ -315,7 +315,7 @@ BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' ;; - x86_64-*-mingw* | x86_64-*-cygwin*) + x86_64-*-mingw* | x86_64-*-cygwin* | x86_64-*-msys*) BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' if test -z "$DLLTOOL_DEFAULT"; then DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MX86_64" @@ -326,7 +326,7 @@ BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)' ;; changequote(,)dnl - i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32** | i[3-7]86-*-netbsdpe*) + i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-msys* | i[3-7]86-*-mingw32** | i[3-7]86-*-netbsdpe*) changequote([,])dnl BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' if test -z "$DLLTOOL_DEFAULT"; then @@ -355,7 +355,7 @@ changequote([,])dnl OBJDUMP_DEFS="-DAIX_WEAK_SUPPORT" ;; - powerpc*-*-pe* | powerpc*-*-cygwin*) + powerpc*-*-pe* | powerpc*-*-cygwin* | powerpc*-*-msys*) BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' if test -z "$DLLTOOL_DEFAULT"; then DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_PPC" diff -Naur binutils-2.30.orig/binutils/dllwrap.c binutils-2.30/binutils/dllwrap.c --- binutils-2.30.orig/binutils/dllwrap.c 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/binutils/dllwrap.c 2018-06-13 08:19:13.214763200 +0300 @@ -78,6 +78,7 @@ typedef enum { UNKNOWN_TARGET, CYGWIN_TARGET, + MSYS_TARGET, MINGW_TARGET } target_type; @@ -832,6 +833,8 @@ /* Set the target platform. */ if (strstr (target, "cygwin")) which_target = CYGWIN_TARGET; + else if (strstr (target, "msys")) + which_target = MSYS_TARGET; else if (strstr (target, "mingw")) which_target = MINGW_TARGET; else @@ -883,6 +886,10 @@ driver_flags = cygwin_driver_flags; break; + case MSYS_TARGET: + driver_flags = cygwin_driver_flags; + break; + case MINGW_TARGET: driver_flags = mingw32_driver_flags; break; @@ -916,6 +923,10 @@ name_entry = "_cygwin_dll_entry"; break; + case MSYS_TARGET: + name_entry = "_msys_dll_entry"; + break; + case MINGW_TARGET: name_entry = "DllMainCRTStartup"; break; @@ -979,7 +990,7 @@ { dyn_string_append_cstr (step_pre1, " --export-all --exclude-symbol="); dyn_string_append_cstr (step_pre1, - "_cygwin_dll_entry@12,DllMainCRTStartup@12,DllMain@12,DllEntryPoint@12"); + "_cygwin_dll_entry@12,_msys_dll_entry@12,DllMainCRTStartup@12,DllMain@12,DllEntryPoint@12"); } dyn_string_append_cstr (step_pre1, " --output-def "); dyn_string_append_cstr (step_pre1, def_file_name); diff -Naur binutils-2.30.orig/binutils/testsuite/binutils-all/copy-3.d binutils-2.30/binutils/testsuite/binutils-all/copy-3.d --- binutils-2.30.orig/binutils/testsuite/binutils-all/copy-3.d 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/binutils/testsuite/binutils-all/copy-3.d 2018-06-13 08:19:13.214763200 +0300 @@ -3,7 +3,7 @@ #objcopy: --set-section-flags .text=alloc,data #name: copy with setting section flags 3 #source: bintest.s -#not-target: *-*-*aout *-*-*coff *-*-cygwin* *-*-darwin *-*-mingw* *-*-go32 *-*-*pe hppa*-*-hpux* m68k-*-netbsd m68k-*-openbsd* ns32k-*-netbsd powerpc-*-aix* rs6000-*-* rx-*-* +#not-target: *-*-*aout *-*-*coff *-*-cygwin* *-*-msys* *-*-darwin *-*-mingw* *-*-go32 *-*-*pe hppa*-*-hpux* m68k-*-netbsd m68k-*-openbsd* ns32k-*-netbsd powerpc-*-aix* rs6000-*-* rx-*-* # The .text # section in PE/COFF has a fixed set of flags and these # cannot be changed. We skip it for them. diff -Naur binutils-2.30.orig/binutils/testsuite/binutils-all/dlltool.exp binutils-2.30/binutils/testsuite/binutils-all/dlltool.exp --- binutils-2.30.orig/binutils/testsuite/binutils-all/dlltool.exp 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/binutils/testsuite/binutils-all/dlltool.exp 2018-06-13 08:19:13.214763200 +0300 @@ -22,6 +22,7 @@ if {![istarget "i*86-*-*pe*"] \ && ![istarget "i*86-*-cygwin*"] \ + && ![istarget "i*86-*-msys*"] \ && ![istarget "i*86-*-mingw32*"] \ && ![istarget "arm-*-pe*"] \ && ![istarget "x86_64-*-mingw*"] } { diff -Naur binutils-2.30.orig/binutils/testsuite/binutils-all/objcopy.exp binutils-2.30/binutils/testsuite/binutils-all/objcopy.exp --- binutils-2.30.orig/binutils/testsuite/binutils-all/objcopy.exp 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/binutils/testsuite/binutils-all/objcopy.exp 2018-06-13 08:19:13.214763200 +0300 @@ -554,7 +554,7 @@ # Build a final executable. -if { [istarget *-*-cygwin] || [istarget *-*-mingw*] } { +if { [istarget *-*-cygwin] || [istarget *-*-mingw*] || [istarget *-*-msys*] } { set test_prog "testprog.exe" } else { set test_prog "testprog" @@ -661,6 +661,7 @@ setup_xfail "arm*-*-pe" setup_xfail "*-*-mingw*" setup_xfail "*-*-cygwin*" + setup_xfail "*-*-msys*" fail $test1 } diff -Naur binutils-2.30.orig/binutils/testsuite/binutils-all/windres/windres.exp binutils-2.30/binutils/testsuite/binutils-all/windres/windres.exp --- binutils-2.30.orig/binutils/testsuite/binutils-all/windres/windres.exp 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/binutils/testsuite/binutils-all/windres/windres.exp 2018-06-13 08:19:13.214763200 +0300 @@ -19,7 +19,7 @@ # Written by DJ Delorie -if {![istarget "i*86-*-*"] && ![istarget "x86_64-*-mingw*"] && ![istarget "x86_64-*-cygwin"] } { +if {![istarget "i*86-*-*"] && ![istarget "x86_64-*-mingw*"] && ![istarget "x86_64-*-cygwin"] && ![istarget "x86_64-*-msys"] } { verbose "Not a Cygwin/Mingw target" 1 return } diff -Naur binutils-2.30.orig/binutils/testsuite/lib/binutils-common.exp binutils-2.30/binutils/testsuite/lib/binutils-common.exp --- binutils-2.30.orig/binutils/testsuite/lib/binutils-common.exp 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/binutils/testsuite/lib/binutils-common.exp 2018-06-13 08:19:13.230363200 +0300 @@ -130,6 +130,7 @@ proc is_pecoff_format {} { if { ![istarget *-*-mingw*] && ![istarget *-*-cygwin*] + && ![istarget *-*-msys*] && ![istarget *-*-cegcc*] && ![istarget *-*-pe*] } { return 0 diff -Naur binutils-2.30.orig/binutils/testsuite/lib/utils-lib.exp binutils-2.30/binutils/testsuite/lib/utils-lib.exp --- binutils-2.30.orig/binutils/testsuite/lib/utils-lib.exp 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/binutils/testsuite/lib/utils-lib.exp 2018-06-13 08:19:13.230363200 +0300 @@ -136,7 +136,7 @@ # Returns target executable extension, if any. # proc exe_ext {} { - if { [istarget *-*-mingw*] || [istarget *-*-cygwin*] } { + if { [istarget *-*-mingw*] || [istarget *-*-cygwin*] || [istarget *-*-msys*] } { return ".exe" } else { return "" diff -Naur binutils-2.30.orig/compile binutils-2.30/compile --- binutils-2.30.orig/compile 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/compile 2018-06-13 08:19:13.230363200 +0300 @@ -53,7 +53,7 @@ MINGW*) file_conv=mingw ;; - CYGWIN*) + CYGWIN* | MSYS*) file_conv=cygwin ;; *) @@ -67,7 +67,7 @@ mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; - cygwin/*) + cygwin/* | msys*/) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) diff -Naur binutils-2.30.orig/config/dfp.m4 binutils-2.30/config/dfp.m4 --- binutils-2.30.orig/config/dfp.m4 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/config/dfp.m4 2018-06-13 08:19:13.230363200 +0300 @@ -23,7 +23,8 @@ powerpc*-*-linux* | i?86*-*-linux* | x86_64*-*-linux* | s390*-*-linux* | \ i?86*-*-elfiamcu | i?86*-*-gnu* | \ i?86*-*-mingw* | x86_64*-*-mingw* | \ - i?86*-*-cygwin* | x86_64*-*-cygwin*) + i?86*-*-cygwin* | x86_64*-*-cygwin* | \ + i?86*-*-msys* | x86_64*-*-msys*) enable_decimal_float=yes ;; *) diff -Naur binutils-2.30.orig/config/elf.m4 binutils-2.30/config/elf.m4 --- binutils-2.30.orig/config/elf.m4 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/config/elf.m4 2018-06-13 08:19:13.230363200 +0300 @@ -15,7 +15,7 @@ target_elf=no case $target in - *-darwin* | *-aix* | *-cygwin* | *-mingw* | *-aout* | *-*coff* | \ + *-darwin* | *-aix* | *-cygwin* | *-msys* | *-mingw* | *-aout* | *-*coff* | \ *-msdosdjgpp* | *-vms* | *-wince* | *-*-pe* | \ alpha*-dec-osf* | *-interix* | hppa[[12]]*-*-hpux* | \ nvptx-*-none) diff -Naur binutils-2.30.orig/config/lthostflags.m4 binutils-2.30/config/lthostflags.m4 --- binutils-2.30.orig/config/lthostflags.m4 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/config/lthostflags.m4 2018-06-13 08:19:13.230363200 +0300 @@ -13,7 +13,7 @@ AC_REQUIRE([AC_CANONICAL_SYSTEM]) case $host in - *-cygwin* | *-mingw*) + *-cygwin* | *-msys* | *-mingw*) # 'host' will be top-level target in the case of a target lib, # we must compare to with_cross_host to decide if this is a native # or cross-compiler and select where to install dlls appropriately. diff -Naur binutils-2.30.orig/config/mmap.m4 binutils-2.30/config/mmap.m4 --- binutils-2.30.orig/config/mmap.m4 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/config/mmap.m4 2018-06-13 08:19:13.230363200 +0300 @@ -42,7 +42,7 @@ # Systems known to be in this category are Windows (all variants), # VMS, and Darwin. case "$host_os" in - *vms* | cygwin* | pe | mingw* | darwin* | ultrix* | hpux10* | hpux11.00) + *vms* | cygwin* | msys* | pe | mingw* | darwin* | ultrix* | hpux10* | hpux11.00) gcc_cv_func_mmap_dev_zero=no ;; *) gcc_cv_func_mmap_dev_zero=yes;; @@ -74,7 +74,7 @@ # above for use of /dev/zero. # Systems known to be in this category are Windows, VMS, and SCO Unix. case "$host_os" in - *vms* | cygwin* | pe | mingw* | sco* | udk* ) + *vms* | cygwin* | msys* | pe | mingw* | sco* | udk* ) gcc_cv_func_mmap_anon=no ;; *) gcc_cv_func_mmap_anon=yes;; diff -Naur binutils-2.30.orig/config/picflag.m4 binutils-2.30/config/picflag.m4 --- binutils-2.30.orig/config/picflag.m4 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/config/picflag.m4 2018-06-13 08:19:13.230363200 +0300 @@ -25,6 +25,8 @@ ;; i[[34567]]86-*-cygwin* | x86_64-*-cygwin*) ;; + i[[34567]]86-*-msys* | x86_64-*-msys*) + ;; i[[34567]]86-*-mingw* | x86_64-*-mingw*) ;; i[[34567]]86-*-interix[[3-9]]*) diff -Naur binutils-2.30.orig/config/tcl.m4 binutils-2.30/config/tcl.m4 --- binutils-2.30.orig/config/tcl.m4 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/config/tcl.m4 2018-06-13 08:19:13.230363200 +0300 @@ -33,7 +33,7 @@ # First check to see if --with-tcl was specified. case "${host}" in - *-*-cygwin*) platDir="win" ;; + *-*-cygwin* | *-*-msys*) platDir="win" ;; *) platDir="unix" ;; esac if test x"${with_tclconfig}" != x ; then @@ -165,7 +165,7 @@ # then check for a private Tk library case "${host}" in - *-*-cygwin*) platDir="win" ;; + *-*-cygwin* | *-*-msys*) platDir="win" ;; *) platDir="unix" ;; esac if test x"${ac_cv_c_tkconfig}" = x ; then diff -Naur binutils-2.30.orig/config.guess binutils-2.30/config.guess --- binutils-2.30.orig/config.guess 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/config.guess 2018-06-13 08:22:46.858542000 +0300 @@ -876,6 +876,9 @@ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; + amd64:MSYS*:*:* | x86_64:MSYS*:*:*) + echo x86_64-unknown-msys + exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; diff -Naur binutils-2.30.orig/config.rpath binutils-2.30/config.rpath --- binutils-2.30.orig/config.rpath 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/config.rpath 2018-06-13 08:19:13.245963200 +0300 @@ -109,7 +109,7 @@ hardcode_minus_L=no case "$host_os" in - cygwin* | mingw* | pw32*) + cygwin* | msys* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. @@ -149,7 +149,7 @@ ld_shlibs=no fi ;; - cygwin* | mingw* | pw32*) + cygwin* | msys* | mingw* | pw32*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' @@ -268,7 +268,7 @@ ;; bsdi4*) ;; - cygwin* | mingw* | pw32*) + cygwin* | msys* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is @@ -437,7 +437,7 @@ ;; bsdi4*) ;; - cygwin* | mingw* | pw32*) + cygwin* | msys* | mingw* | pw32*) shrext=.dll ;; darwin* | rhapsody*) diff -Naur binutils-2.30.orig/configure binutils-2.30/configure --- binutils-2.30.orig/configure 2018-01-13 16:43:23.000000000 +0300 +++ binutils-2.30/configure 2018-06-13 08:24:38.459138200 +0300 @@ -3037,7 +3037,7 @@ # Configure extra directories which are host specific case "${host}" in - *-cygwin*) + *-cygwin* | *-msys*) configdirs="$configdirs libtermcap" ;; esac @@ -3457,7 +3457,7 @@ # Disable the go frontend on systems where it is known to not work. Please keep # this in sync with contrib/config-list.mk. case "${target}" in -*-*-darwin* | *-*-cygwin* | *-*-mingw*) +*-*-darwin* | *-*-cygwin* | *-*-msys* | *-*-mingw*) unsupported_languages="$unsupported_languages go" ;; esac @@ -3470,7 +3470,7 @@ # PR 46986 noconfigdirs="$noconfigdirs target-libgo" ;; - *-*-cygwin* | *-*-mingw*) + *-*-cygwin* | *-*-msys* | *-*-mingw*) noconfigdirs="$noconfigdirs target-libgo" ;; esac @@ -3738,7 +3738,7 @@ i[3456789]86-*-mingw*) target_configdirs="$target_configdirs target-winsup" ;; - *-*-cygwin*) + *-*-cygwin* | *-*-msys*) target_configdirs="$target_configdirs target-libtermcap target-winsup" noconfigdirs="$noconfigdirs target-libgloss" # always build newlib if winsup directory is present. @@ -3876,7 +3876,7 @@ i[3456789]86-*-msdosdjgpp*) host_makefile_frag="config/mh-djgpp" ;; - *-cygwin*) + *-cygwin* | *-msys*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if cat works as expected" >&5 $as_echo_n "checking to see if cat works as expected... " >&6; } @@ -5994,7 +5994,7 @@ target_elf=no case $target in - *-darwin* | *-aix* | *-cygwin* | *-mingw* | *-aout* | *-*coff* | \ + *-darwin* | *-aix* | *-cygwin* | *-msys* | *-mingw* | *-aout* | *-*coff* | \ *-msdosdjgpp* | *-vms* | *-wince* | *-*-pe* | \ alpha*-dec-osf* | *-interix* | hppa[12]*-*-hpux* | \ nvptx-*-none) @@ -6012,7 +6012,7 @@ else if test x"$default_enable_lto" = x"yes" ; then case $target in - *-apple-darwin[912]* | *-cygwin* | *-mingw* | *djgpp*) ;; + *-apple-darwin[912]* | *-cygwin* | *-msys* | *-mingw* | *djgpp*) ;; # On other non-ELF platforms, LTO has yet to be validated. *) enable_lto=no ;; esac @@ -6023,7 +6023,7 @@ # warn during gcc/ subconfigure; unless you're bootstrapping with # -flto it won't be needed until after installation anyway. case $target in - *-cygwin* | *-mingw* | *-apple-darwin* | *djgpp*) ;; + *-cygwin* | *-msys* | *-mingw* | *-apple-darwin* | *djgpp*) ;; *) if test x"$enable_lto" = x"yes"; then as_fn_error "LTO support is not enabled for this target." "$LINENO" 5 fi @@ -6033,7 +6033,7 @@ # Among non-ELF, only Windows platforms support the lto-plugin so far. # Build it unless LTO was explicitly disabled. case $target in - *-cygwin* | *-mingw*) build_lto_plugin=$enable_lto ;; + *-cygwin* | *-msys* | *-mingw*) build_lto_plugin=$enable_lto ;; *) ;; esac @@ -6997,7 +6997,7 @@ case "${host}" in *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;; *-*-darwin*) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;; - *-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;; + *-*-mingw* | *-*-cygwin | *-*-msys) RPATH_ENVVAR=PATH ;; *) RPATH_ENVVAR=LD_LIBRARY_PATH ;; esac @@ -7510,7 +7510,7 @@ case " $target_configargs " in *" --with-newlib "*) case "$target" in - *-cygwin*) + *-cygwin* | *-msys*) FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup/cygwin -isystem $$s/winsup/cygwin/include' ;; esac diff -Naur binutils-2.30.orig/configure.ac binutils-2.30/configure.ac --- binutils-2.30.orig/configure.ac 2018-01-27 18:13:40.000000000 +0300 +++ binutils-2.30/configure.ac 2018-06-13 08:24:00.301471200 +0300 @@ -403,7 +403,7 @@ # Configure extra directories which are host specific case "${host}" in - *-cygwin*) + *-cygwin* | *-msys*) configdirs="$configdirs libtermcap" ;; esac @@ -788,7 +788,7 @@ # Disable the go frontend on systems where it is known to not work. Please keep # this in sync with contrib/config-list.mk. case "${target}" in -*-*-darwin* | *-*-cygwin* | *-*-mingw*) +*-*-darwin* | *-*-cygwin* | *-*-msys* | *-*-mingw*) unsupported_languages="$unsupported_languages go" ;; esac @@ -801,7 +801,7 @@ # PR 46986 noconfigdirs="$noconfigdirs target-libgo" ;; - *-*-cygwin* | *-*-mingw*) + *-*-cygwin* | *-*-msys* | *-*-mingw*) noconfigdirs="$noconfigdirs target-libgo" ;; esac @@ -1069,7 +1069,7 @@ i[[3456789]]86-*-mingw*) target_configdirs="$target_configdirs target-winsup" ;; - *-*-cygwin*) + *-*-cygwin* | *-*-msys*) target_configdirs="$target_configdirs target-libtermcap target-winsup" noconfigdirs="$noconfigdirs target-libgloss" # always build newlib if winsup directory is present. @@ -1207,7 +1207,7 @@ i[[3456789]]86-*-msdosdjgpp*) host_makefile_frag="config/mh-djgpp" ;; - *-cygwin*) + *-cygwin* | *-msys*) ACX_CHECK_CYGWIN_CAT_WORKS host_makefile_frag="config/mh-cygwin" ;; @@ -1697,7 +1697,7 @@ build_lto_plugin=yes ],[if test x"$default_enable_lto" = x"yes" ; then case $target in - *-apple-darwin[[912]]* | *-cygwin* | *-mingw* | *djgpp*) ;; + *-apple-darwin[[912]]* | *-cygwin* | *-msys* | *-mingw* | *djgpp*) ;; # On other non-ELF platforms, LTO has yet to be validated. *) enable_lto=no ;; esac @@ -1708,7 +1708,7 @@ # warn during gcc/ subconfigure; unless you're bootstrapping with # -flto it won't be needed until after installation anyway. case $target in - *-cygwin* | *-mingw* | *-apple-darwin* | *djgpp*) ;; + *-cygwin* | *-msys* | *-mingw* | *-apple-darwin* | *djgpp*) ;; *) if test x"$enable_lto" = x"yes"; then AC_MSG_ERROR([LTO support is not enabled for this target.]) fi @@ -1718,7 +1718,7 @@ # Among non-ELF, only Windows platforms support the lto-plugin so far. # Build it unless LTO was explicitly disabled. case $target in - *-cygwin* | *-mingw*) build_lto_plugin=$enable_lto ;; + *-cygwin* | *-msys* | *-mingw*) build_lto_plugin=$enable_lto ;; *) ;; esac ]) @@ -2591,7 +2591,7 @@ case "${host}" in *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;; *-*-darwin*) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;; - *-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;; + *-*-mingw* | *-*-cygwin | *-*-msys) RPATH_ENVVAR=PATH ;; *) RPATH_ENVVAR=LD_LIBRARY_PATH ;; esac @@ -3099,7 +3099,7 @@ case " $target_configargs " in *" --with-newlib "*) case "$target" in - *-cygwin*) + *-cygwin* | *-msys*) FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup/cygwin -isystem $$s/winsup/cygwin/include' ;; esac diff -Naur binutils-2.30.orig/gas/configure binutils-2.30/gas/configure --- binutils-2.30.orig/gas/configure 2018-01-27 17:59:06.000000000 +0300 +++ binutils-2.30/gas/configure 2018-06-13 08:19:13.277163300 +0300 @@ -5525,7 +5525,7 @@ lt_cv_sys_max_cmd_len=-1; ;; - cygwin* | mingw* | cegcc*) + cygwin* | msys* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, @@ -5867,7 +5867,7 @@ lt_cv_file_magic_test_file=/shlib/libc.so ;; -cygwin*) +cygwin* | msys*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' @@ -6447,7 +6447,7 @@ aix*) symcode='[BCDT]' ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) @@ -8062,7 +8062,7 @@ # PIC is the default for these OSes. ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | cygwin* | msys* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style @@ -8144,7 +8144,7 @@ fi ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | cygwin* | msys* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' @@ -8606,7 +8606,7 @@ extract_expsyms_cmds= case $host_os in - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. @@ -8721,7 +8721,7 @@ fi ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' @@ -9152,7 +9152,7 @@ export_dynamic_flag_spec=-rdynamic ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is @@ -10053,14 +10053,14 @@ # libtool to hard-code these into programs ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + yes,cygwin* | yes,msys* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -10084,6 +10084,12 @@ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; + msys*) + # Msys DLLs use 'msys-' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/msys-/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' @@ -10720,7 +10726,7 @@ lt_cv_dlopen_libs= ;; - cygwin*) + cygwin* | msys*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; @@ -13951,7 +13957,7 @@ yes) LIBM= case $host in -*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-msys* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) @@ -14543,7 +14549,7 @@ case "${host}" in -*-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*) +*-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-msys* | *-*-windows*) $as_echo "#define USE_BINARY_FOPEN 1" >>confdefs.h ;; diff -Naur binutils-2.30.orig/gas/configure.tgt binutils-2.30/gas/configure.tgt --- binutils-2.30.orig/gas/configure.tgt 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/gas/configure.tgt 2018-06-13 08:19:13.277163300 +0300 @@ -275,7 +275,7 @@ i386-*-msdos*) fmt=aout ;; i386-*-moss*) fmt=elf ;; i386-*-pe) fmt=coff em=pe ;; - i386-*-cygwin*) + i386-*-cygwin* | i386-*-msys*) case ${cpu} in x86_64*) fmt=coff em=pep ;; i*) fmt=coff em=pe ;; diff -Naur binutils-2.30.orig/gas/testsuite/gas/all/gas.exp binutils-2.30/gas/testsuite/gas/all/gas.exp --- binutils-2.30.orig/gas/testsuite/gas/all/gas.exp 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/gas/testsuite/gas/all/gas.exp 2018-06-13 08:19:13.277163300 +0300 @@ -177,8 +177,8 @@ # failures. setup_xfail "bfin-*-*" "i\[3-7\]86-*-*coff" \ "i\[3-7\]86-*-*pe" "i\[3-7\]86-*-go32*" \ - "i\[3-7\]86-*-cygwin*" "i\[3-7\]86-*-mingw*" \ - "x86_64-*-cygwin*" "x86_64-*-mingw*" + "i\[3-7\]86-*-cygwin*" "i\[3-7\]86-*-msys*" "i\[3-7\]86-*-mingw*" \ + "x86_64-*-cygwin*" "x86_64-*-msys*" "x86_64-*-mingw*" run_dump_test redef3 gas_test_error "redef4.s" "" ".set for symbol already used as label" gas_test_error "redef5.s" "" ".set for symbol already defined through .comm" @@ -333,6 +333,7 @@ || [istarget i*86-*-isc*] \ || [istarget i*86-*-go32*] \ || [istarget i*86-*-cygwin*] \ + || [istarget i*86-*-msys*] \ || [istarget x86_64-*-mingw*] \ || [istarget i*86-*-*nt] \ || [istarget i*86-*-interix*] \ @@ -381,6 +382,7 @@ if { ([istarget "i*86-*-*pe*"] && ![istarget "i*86-*-openbsd*"]) \ || [istarget "i*86-*-cygwin*"] \ + || [istarget "i*86-*-msys*"] \ || [istarget "i*86-*-mingw32*"] } { gas_test "fastcall.s" "" "" "fastcall labels" } diff -Naur binutils-2.30.orig/gas/testsuite/gas/i386/i386.exp binutils-2.30/gas/testsuite/gas/i386/i386.exp --- binutils-2.30.orig/gas/testsuite/gas/i386/i386.exp 2018-01-13 16:31:15.000000000 +0300 +++ binutils-2.30/gas/testsuite/gas/i386/i386.exp 2018-06-13 08:19:13.277163300 +0300 @@ -510,7 +510,7 @@ # This is a PE specific test. if { [istarget "*-*-cygwin*"] || [istarget "*-*-pe"] - || [istarget "*-*-mingw*"] + || [istarget "*-*-mingw*"] || [istarget "*-*-msys*"] } then { run_dump_test "secrel" } diff -Naur binutils-2.30.orig/gprof/configure binutils-2.30/gprof/configure --- binutils-2.30.orig/gprof/configure 2018-01-27 18:02:44.000000000 +0300 +++ binutils-2.30/gprof/configure 2018-06-13 08:19:13.292763300 +0300 @@ -5440,7 +5440,7 @@ lt_cv_sys_max_cmd_len=-1; ;; - cygwin* | mingw* | cegcc*) + cygwin* | msys* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, @@ -5782,7 +5782,7 @@ lt_cv_file_magic_test_file=/shlib/libc.so ;; -cygwin*) +cygwin* | msys*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' @@ -6362,7 +6362,7 @@ aix*) symcode='[BCDT]' ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) @@ -7977,7 +7977,7 @@ # PIC is the default for these OSes. ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | cygwin* | msys* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style @@ -8059,7 +8059,7 @@ fi ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | cygwin* | msys* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' @@ -8521,7 +8521,7 @@ extract_expsyms_cmds= case $host_os in - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. @@ -8636,7 +8636,7 @@ fi ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' @@ -9067,7 +9067,7 @@ export_dynamic_flag_spec=-rdynamic ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is @@ -9968,14 +9968,14 @@ # libtool to hard-code these into programs ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + yes,cygwin* | yes,msys* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -9999,6 +9999,12 @@ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; + msys*) + # Msys DLLs use 'msys-' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/msys-/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' @@ -10635,7 +10641,7 @@ lt_cv_dlopen_libs= ;; - cygwin*) + cygwin* | msys*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; diff -Naur binutils-2.30.orig/ld/configure binutils-2.30/ld/configure --- binutils-2.30.orig/ld/configure 2018-01-27 18:03:10.000000000 +0300 +++ binutils-2.30/ld/configure 2018-06-13 08:19:13.292763300 +0300 @@ -6262,7 +6262,7 @@ lt_cv_sys_max_cmd_len=-1; ;; - cygwin* | mingw* | cegcc*) + cygwin* | msys* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, @@ -6604,7 +6604,7 @@ lt_cv_file_magic_test_file=/shlib/libc.so ;; -cygwin*) +cygwin* | msys*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' @@ -7184,7 +7184,7 @@ aix*) symcode='[BCDT]' ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) @@ -8800,7 +8800,7 @@ # PIC is the default for these OSes. ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | cygwin* | msys* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style @@ -8882,7 +8882,7 @@ fi ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | cygwin* | msys* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' @@ -9344,7 +9344,7 @@ extract_expsyms_cmds= case $host_os in - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. @@ -9459,7 +9459,7 @@ fi ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' @@ -9890,7 +9890,7 @@ export_dynamic_flag_spec=-rdynamic ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is @@ -10791,14 +10791,14 @@ # libtool to hard-code these into programs ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + yes,cygwin* | yes,msys* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -10822,6 +10822,12 @@ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; + msys*) + # Msys DLLs use 'msys-' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/msys-/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' @@ -11458,7 +11464,7 @@ lt_cv_dlopen_libs= ;; - cygwin*) + cygwin* | msys*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; @@ -12680,7 +12686,7 @@ esac ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' @@ -13649,7 +13655,7 @@ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; - mingw* | cygwin* | os2* | pw32* | cegcc*) + mingw* | cygwin* | msys* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style @@ -14189,7 +14195,7 @@ pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; - cygwin* | mingw* | cegcc*) + cygwin* | msys* | mingw* | cegcc*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ;; *) @@ -14453,14 +14459,14 @@ # libtool to hard-code these into programs ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + yes,cygwin* | yes,msys* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -14483,6 +14489,11 @@ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; + msys*) + # Msys DLLs use 'msys-' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/msys-/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' @@ -16995,7 +17006,7 @@ case "${host}" in -*-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*) +*-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-msys* | *-*-windows*) $as_echo "#define USE_BINARY_FOPEN 1" >>confdefs.h ;; diff -Naur binutils-2.30.orig/ld/configure.tgt binutils-2.30/ld/configure.tgt --- binutils-2.30.orig/ld/configure.tgt 2018-01-13 16:31:16.000000000 +0300 +++ binutils-2.30/ld/configure.tgt 2018-06-13 08:19:13.308363300 +0300 @@ -371,7 +371,7 @@ targ_extra_ofiles="deffilep.o pe-dll.o" ;; i[3-7]86-*-pe) targ_emul=i386pe ; targ_extra_ofiles="deffilep.o pe-dll.o" ;; -i[3-7]86-*-cygwin*) targ_emul=i386pe ; +i[3-7]86-*-cygwin* | i[3-7]86-*-msys*) targ_emul=i386pe ; targ_extra_ofiles="deffilep.o pe-dll.o" ; test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api' ;; i[3-7]86-*-mingw32*) targ_emul=i386pe ; @@ -379,7 +379,7 @@ x86_64-*-pe | x86_64-*-pep) targ_emul=i386pep ; targ_extra_emuls=i386pe ; targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" ;; -x86_64-*-cygwin) targ_emul=i386pep ; +x86_64-*-cygwin | x86_64-*-msys*) targ_emul=i386pep ; targ_extra_emuls=i386pe targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api' ;; @@ -692,7 +692,7 @@ powerpcle-*-nto*) targ_emul=elf32lppcnto ;; powerpc-*-macos*) targ_emul=ppcmacos ;; powerpc-*-netware*) targ_emul=ppcnw ;; -powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin*) +powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin* | powerpcle-*-msys*) targ_emul=ppcpe targ_extra_ofiles="deffilep.o pe-dll.o" ;; powerpc-*-aix[5-9]*) targ_emul=aix5ppc ;; @@ -932,6 +932,10 @@ NATIVE_LIB_DIRS='/usr/lib /usr/lib/w32api' ;; +i[03-9x]86-*-msys* | x86_64-*-msys*) + NATIVE_LIB_DIRS='/usr/lib /usr/lib/w32api' + ;; + *-*-linux*) ;; diff -Naur binutils-2.30.orig/ld/emultempl/pe.em binutils-2.30/ld/emultempl/pe.em --- binutils-2.30.orig/ld/emultempl/pe.em 2018-01-13 16:31:16.000000000 +0300 +++ binutils-2.30/ld/emultempl/pe.em 2018-06-13 08:19:13.308363300 +0300 @@ -176,7 +176,7 @@ # merge_rdata defaults to 0 for cygwin: # http://cygwin.com/ml/cygwin-apps/2013-04/msg00187.html case ${target} in - *-*-cygwin*) + *-*-cygwin* | *-*-msys*) default_auto_import=1 default_merge_rdata=0 ;; diff -Naur binutils-2.30.orig/ld/emultempl/pep.em binutils-2.30/ld/emultempl/pep.em --- binutils-2.30.orig/ld/emultempl/pep.em 2018-01-13 16:31:16.000000000 +0300 +++ binutils-2.30/ld/emultempl/pep.em 2018-06-13 08:19:13.308363300 +0300 @@ -7,7 +7,7 @@ fi case ${target} in - *-*-cygwin*) + *-*-cygwin* | *-*-msys*) move_default_addr_high=1 ;; *) diff -Naur binutils-2.30.orig/ld/pe-dll.c binutils-2.30/ld/pe-dll.c --- binutils-2.30.orig/ld/pe-dll.c 2018-01-13 16:31:16.000000000 +0300 +++ binutils-2.30/ld/pe-dll.c 2018-06-13 08:19:13.308363300 +0300 @@ -207,6 +207,7 @@ { STRING_COMMA_LEN ("_NULL_IMPORT_DESCRIPTOR") }, /* Entry point symbols, and entry hooks. */ { STRING_COMMA_LEN ("cygwin_crt0") }, + { STRING_COMMA_LEN ("msys_crt0") }, #ifdef pe_use_x86_64 { STRING_COMMA_LEN ("DllMain") }, { STRING_COMMA_LEN ("DllEntryPoint") }, @@ -214,6 +215,9 @@ { STRING_COMMA_LEN ("_cygwin_dll_entry") }, { STRING_COMMA_LEN ("_cygwin_crt0_common") }, { STRING_COMMA_LEN ("_cygwin_noncygwin_dll_entry") }, + { STRING_COMMA_LEN ("_msys_dll_entry") }, + { STRING_COMMA_LEN ("_msys_crt0_common") }, + { STRING_COMMA_LEN ("_msys_nonmsys_dll_entry") }, #else { STRING_COMMA_LEN ("DllMain@12") }, { STRING_COMMA_LEN ("DllEntryPoint@0") }, @@ -222,6 +226,10 @@ { STRING_COMMA_LEN ("_cygwin_crt0_common@8") }, { STRING_COMMA_LEN ("_cygwin_noncygwin_dll_entry@12") }, { STRING_COMMA_LEN ("cygwin_attach_dll") }, + { STRING_COMMA_LEN ("_msys_dll_entry@12") }, + { STRING_COMMA_LEN ("_msys_crt0_common@8") }, + { STRING_COMMA_LEN ("_msys_nonmsys_dll_entry@12") }, + { STRING_COMMA_LEN ("msys_attach_dll") }, #endif { STRING_COMMA_LEN ("cygwin_premain0") }, { STRING_COMMA_LEN ("cygwin_premain1") }, @@ -335,6 +343,7 @@ { { STRING_COMMA_LEN ("libcegcc") }, { STRING_COMMA_LEN ("libcygwin") }, + { STRING_COMMA_LEN ("libmsys-2.0") }, { STRING_COMMA_LEN ("libgcc") }, { STRING_COMMA_LEN ("libgcc_s") }, { STRING_COMMA_LEN ("libstdc++") }, diff -Naur binutils-2.30.orig/ld/testsuite/ld-auto-import/auto-import.exp binutils-2.30/ld/testsuite/ld-auto-import/auto-import.exp --- binutils-2.30.orig/ld/testsuite/ld-auto-import/auto-import.exp 2018-01-13 16:31:16.000000000 +0300 +++ binutils-2.30/ld/testsuite/ld-auto-import/auto-import.exp 2018-06-13 08:19:13.323963400 +0300 @@ -56,7 +56,8 @@ # This test can only be run on a couple of platforms. # Square bracket expressions seem to confuse istarget. -if { ![istarget *-pc-cygwin] +if { ![istarget *-pc-cygwin] + && ![istarget *-pc-msys] && ![istarget *-pc-mingw*] } { return } @@ -113,17 +114,26 @@ set tmpdir tmpdir set SHCFLAG "" -if [istarget *-pc-cygwin] { +if [istarget *-pc-cygwin || istarget *-pc-msys] { # Set some libs needed for cygwin. + if [istarget *-pc-cygwin] { set MYLIBS "-L/usr/lib -lcygwin -L/usr/lib/w32api -lkernel32" - + } else { + set MYLIBS "-L/usr/lib -lmsys-2.0 -L/usr/lib/w32api -lkernel32" + } + # Compile the dll. if ![ld_compile "$CC $CFLAGS $SHCFLAG" $srcdir/$subdir/dll.c $tmpdir/dll.o] { fail "compiling shared lib" } + if [istarget *-pc-cygwin] { if ![ld_special_link "$ld -shared --enable-auto-import -e __cygwin_dll_entry@12 --out-implib=$tmpdir/libstandard.dll.a" $tmpdir/dll.dll "$tmpdir/dll.o $MYLIBS"] { fail "linking shared lib" } + } else { + if ![ld_special_link "$ld -shared --enable-auto-import -e __msys_dll_entry@12 --out-implib=$tmpdir/libstandard.dll.a" $tmpdir/dll.dll "$tmpdir/dll.o $MYLIBS"] { + fail "linking shared lib + } # Create symbolic link. catch "exec ln -fs dll.dll $tmpdir/libsymlinked_dll.dll.a" ln_catch diff -Naur binutils-2.30.orig/ld/testsuite/ld-bootstrap/bootstrap.exp binutils-2.30/ld/testsuite/ld-bootstrap/bootstrap.exp --- binutils-2.30.orig/ld/testsuite/ld-bootstrap/bootstrap.exp 2018-01-13 16:31:16.000000000 +0300 +++ binutils-2.30/ld/testsuite/ld-bootstrap/bootstrap.exp 2018-06-13 08:19:13.323963400 +0300 @@ -126,7 +126,7 @@ # On Cygwin, -lintl may require -liconv when linking statically. set extralibs "" - if { [istarget "*-*-cygwin*"]} { + if { [istarget "*-*-cygwin*"] || [istarget "*-*-msys*"] } { if {"$flags" == "--static"} { set extralibs "-liconv" } @@ -194,6 +194,7 @@ if {[istarget "*-*-pe"] || [istarget "*-*-wince"] || [istarget "*-*-cygwin*"] + || [istarget "*-*-msys*"] || [istarget "*-*-winnt*"] || [istarget "*-*-mingw*"] || [istarget "*-*-interix*"] diff -Naur binutils-2.30.orig/ld/testsuite/ld-cygwin/exe-export.exp binutils-2.30/ld/testsuite/ld-cygwin/exe-export.exp --- binutils-2.30.orig/ld/testsuite/ld-cygwin/exe-export.exp 2018-06-13 08:38:48.028433800 +0300 +++ binutils-2.30/ld/testsuite/ld-cygwin/exe-export.exp 2018-06-13 08:19:13.323963400 +0300 @@ -23,7 +23,7 @@ # # This test can only be run on a cygwin platforms. -if {![istarget *-pc-cygwin]} { +if {![istarget *-*-cygwin]} && ![istarget *-*-msys*]} { verbose "Not a cygwin target." return } diff -Naur binutils-2.30.orig/ld/testsuite/ld-fastcall/fastcall.exp binutils-2.30/ld/testsuite/ld-fastcall/fastcall.exp --- binutils-2.30.orig/ld/testsuite/ld-fastcall/fastcall.exp 2018-01-13 16:31:16.000000000 +0300 +++ binutils-2.30/ld/testsuite/ld-fastcall/fastcall.exp 2018-06-13 08:19:13.339563400 +0300 @@ -26,6 +26,7 @@ if { !([istarget "i*86-*-*pe*"] && ![istarget "i*86-*-opensd*"]) \ && ![istarget "i*86-*-cygwin*"] \ + && ![istarget "i*86-*-msys*"] \ && ![istarget "x86_64-*-mingw*"] \ && ![istarget "i*86-*-mingw*"] } { return diff -Naur binutils-2.30.orig/ld/testsuite/ld-pe/export_dynamic_warning.d binutils-2.30/ld/testsuite/ld-pe/export_dynamic_warning.d --- binutils-2.30.orig/ld/testsuite/ld-pe/export_dynamic_warning.d 2018-01-13 16:31:16.000000000 +0300 +++ binutils-2.30/ld/testsuite/ld-pe/export_dynamic_warning.d 2018-06-13 08:19:13.339563400 +0300 @@ -1,5 +1,5 @@ #name: PE-COFF --export-dynamic warning -#target: *-*-mingw32 *-*-cygwin *-*-pe +#target: *-*-mingw32 *-*-cygwin *-*-msys *-*-pe #ld: --export-dynamic #warning: warning: --export-dynamic is not supported for PE\+? targets, did you mean --export-all-symbols\? diff -Naur binutils-2.30.orig/ld/testsuite/ld-pe/image_size.d binutils-2.30/ld/testsuite/ld-pe/image_size.d --- binutils-2.30.orig/ld/testsuite/ld-pe/image_size.d 2018-01-13 16:31:16.000000000 +0300 +++ binutils-2.30/ld/testsuite/ld-pe/image_size.d 2018-06-13 08:19:13.339563400 +0300 @@ -1,7 +1,7 @@ #name: PE-COFF SizeOfImage #ld: -T image_size.t #objdump: -p -#target: *-*-mingw32 *-*-cygwin +#target: *-*-mingw32 *-*-cygwin *-*-msys .*: file format .* #... diff -Naur binutils-2.30.orig/ld/testsuite/ld-pe/pe.exp binutils-2.30/ld/testsuite/ld-pe/pe.exp --- binutils-2.30.orig/ld/testsuite/ld-pe/pe.exp 2018-01-13 16:31:16.000000000 +0300 +++ binutils-2.30/ld/testsuite/ld-pe/pe.exp 2018-06-13 08:19:13.339563400 +0300 @@ -26,6 +26,7 @@ # This test can only be run on PE/COFF platforms that support .secrel32. if {[istarget i*86-*-cygwin*] + || [istarget i*86-*-msys*] || [istarget i*86-*-pe] || [istarget i*86-*-mingw*] || [istarget x86_64-*-mingw*] @@ -40,7 +41,7 @@ {"TLS directory entry" "" "" "" "tlssec.s" {{objdump -p tlssec64.d}} "tlssec.dll"} } - } elseif {[istarget i*86-*-cygwin*] } { + } elseif {[istarget i*86-*-cygwin*] || [istarget i*86-*-msys*] } { set pe_tests { {".secrel32" "--disable-auto-import" "" "" {secrel1.s secrel2.s} {{objdump -s secrel.d}} "secrel.x"} @@ -94,7 +95,7 @@ if {[istarget x86_64-*-mingw*] } { run_dump_test "cfi" -} elseif {[istarget i*86-*-cygwin*] || [istarget i*86-*-mingw*] } { +} elseif {[istarget i*86-*-cygwin*] || [istarget i*86-*-msys*] || [istarget i*86-*-mingw*] } { run_dump_test "cfi32" } diff -Naur binutils-2.30.orig/ld/testsuite/ld-pe/pe-compile.exp binutils-2.30/ld/testsuite/ld-pe/pe-compile.exp --- binutils-2.30.orig/ld/testsuite/ld-pe/pe-compile.exp 2018-01-13 16:31:16.000000000 +0300 +++ binutils-2.30/ld/testsuite/ld-pe/pe-compile.exp 2018-06-13 08:19:13.339563400 +0300 @@ -118,6 +118,7 @@ run_ver_script_test "vers-script-4" if {[istarget i*86-*-cygwin*] + || [istarget i*86-*-msys*] || [istarget i*86-*-pe] || [istarget i*86-*-mingw*] || [istarget x86_64-*-mingw*] } { diff -Naur binutils-2.30.orig/ld/testsuite/ld-scripts/script.exp binutils-2.30/ld/testsuite/ld-scripts/script.exp --- binutils-2.30.orig/ld/testsuite/ld-scripts/script.exp 2018-01-13 16:31:16.000000000 +0300 +++ binutils-2.30/ld/testsuite/ld-scripts/script.exp 2018-06-13 08:19:13.339563400 +0300 @@ -163,6 +163,10 @@ pass $testname return } + [a-z]*-*-msys$ { + pass $testname + return + } } set extract_syms [run_host_cmd $nm $copyfile] @@ -185,6 +189,7 @@ set flags "" if {[istarget "*-*-pe*"] \ || [istarget "*-*-cygwin*"] \ + || [istarget "*-*-msys*"] \ || [istarget "*-*-mingw*"] \ || [istarget "*-*-winnt*"] \ || [istarget "*-*-nt"] \ diff -Naur binutils-2.30.orig/ld/testsuite/ld-srec/srec.exp binutils-2.30/ld/testsuite/ld-srec/srec.exp --- binutils-2.30.orig/ld/testsuite/ld-srec/srec.exp 2018-01-13 16:31:16.000000000 +0300 +++ binutils-2.30/ld/testsuite/ld-srec/srec.exp 2018-06-13 08:19:13.339563400 +0300 @@ -407,7 +407,7 @@ # The S-record linker doesn't support the special PE headers - the PE # emulation tries to write pe-specific information to the PE headers # in the output bfd, but it's not a PE bfd (it's an srec bfd) -setup_xfail "*-*-cygwin*" "*-*-mingw*" "*-*-pe*" "*-*-winnt*" +setup_xfail "*-*-cygwin*" "*-*-msys*" "*-*-mingw*" "*-*-pe*" "*-*-winnt*" setup_xfail "score-*-*" # The S-record linker doesn't support Blackfin ELF FDPIC ABI. @@ -451,7 +451,7 @@ setup_xfail "alpha*-*-netbsd*" setup_xfail "hppa*-*-*" "mep-*-*" setup_xfail "ia64-*-*" -setup_xfail "*-*-cygwin*" "*-*-mingw*" "*-*-pe*" "*-*-winnt*" +setup_xfail "*-*-cygwin*" "*-*-msys*" "*-*-mingw*" "*-*-pe*" "*-*-winnt*" setup_xfail "score-*-*" setup_xfail "bfin-*-linux-uclibc" setup_xfail "tile*-*-*" diff -Naur binutils-2.30.orig/ld/testsuite/lib/ld-lib.exp binutils-2.30/ld/testsuite/lib/ld-lib.exp --- binutils-2.30.orig/ld/testsuite/lib/ld-lib.exp 2018-01-13 16:31:16.000000000 +0300 +++ binutils-2.30/ld/testsuite/lib/ld-lib.exp 2018-06-13 08:19:13.339563400 +0300 @@ -392,7 +392,7 @@ } # Windows targets need __main, some prefixed with underscore. - if {[istarget *-*-cygwin* ] || [istarget *-*-mingw*]} { + if {[istarget *-*-cygwin* ] || [istarget *-*-mingw*] || [istarget *-*-msys*]} { append flags " --defsym __main=0 --defsym ___main=0" } diff -Naur binutils-2.30.orig/libiberty/configure binutils-2.30/libiberty/configure --- binutils-2.30.orig/libiberty/configure 2018-01-13 16:31:16.000000000 +0300 +++ binutils-2.30/libiberty/configure 2018-06-13 08:19:13.339563400 +0300 @@ -5110,6 +5110,8 @@ ;; i[34567]86-*-cygwin* | x86_64-*-cygwin*) ;; + i[34567]86-*-msys* | x86_64-*-msys*) + ;; i[34567]86-*-mingw* | x86_64-*-mingw*) ;; i[34567]86-*-interix[3-9]*) @@ -6185,7 +6187,7 @@ case "${host}" in - *-*-cygwin* | *-*-mingw*) + *-*-cygwin* | *-*-msys* | *-*-mingw*) $as_echo "#define HAVE_SYS_ERRLIST 1" >>confdefs.h $as_echo "#define HAVE_SYS_NERR 1" >>confdefs.h diff -Naur binutils-2.30.orig/libiberty/configure.ac binutils-2.30/libiberty/configure.ac --- binutils-2.30.orig/libiberty/configure.ac 2018-01-13 16:31:16.000000000 +0300 +++ binutils-2.30/libiberty/configure.ac 2018-06-13 08:19:13.355163400 +0300 @@ -550,7 +550,7 @@ AC_SUBST(target_header_dir) case "${host}" in - *-*-cygwin* | *-*-mingw*) + *-*-cygwin* | *-*-msys* | *-*-mingw*) AC_DEFINE(HAVE_SYS_ERRLIST) AC_DEFINE(HAVE_SYS_NERR) ;; diff -Naur binutils-2.30.orig/libtool.m4 binutils-2.30/libtool.m4 --- binutils-2.30.orig/libtool.m4 2018-01-13 16:31:16.000000000 +0300 +++ binutils-2.30/libtool.m4 2018-06-13 08:19:13.355163400 +0300 @@ -1491,7 +1491,7 @@ lt_cv_sys_max_cmd_len=-1; ;; - cygwin* | mingw* | cegcc*) + cygwin* | msys* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, @@ -1733,7 +1733,7 @@ lt_cv_dlopen_libs= ;; - cygwin*) + cygwin* | msys*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; @@ -2204,14 +2204,14 @@ # libtool to hard-code these into programs ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + yes,cygwin* | yes,msys* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -2235,6 +2235,12 @@ m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; + msys*) + # Msys DLLs use 'msys-' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/msys-/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) + ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' @@ -3001,7 +3007,7 @@ lt_cv_file_magic_test_file=/shlib/libc.so ;; -cygwin*) +cygwin* | msys*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' @@ -3285,7 +3291,7 @@ [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in -*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-msys* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) @@ -3360,7 +3366,7 @@ aix*) symcode='[[BCDT]]' ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) @@ -3607,7 +3613,7 @@ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; - mingw* | cygwin* | os2* | pw32* | cegcc*) + mingw* | cygwin* | msys* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style @@ -3920,7 +3926,7 @@ # PIC is the default for these OSes. ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | cygwin* | msys* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style @@ -4003,7 +4009,7 @@ fi ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | cygwin* | msys* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], @@ -4236,7 +4242,7 @@ pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; - cygwin* | mingw* | cegcc*) + cygwin* | msys* | mingw* | cegcc*) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ;; *) @@ -4288,7 +4294,7 @@ extract_expsyms_cmds= case $host_os in - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. @@ -4403,7 +4409,7 @@ fi ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' @@ -4776,7 +4782,7 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is @@ -5720,7 +5726,7 @@ esac ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' diff -Naur binutils-2.30.orig/ltmain.sh binutils-2.30/ltmain.sh --- binutils-2.30.orig/ltmain.sh 2018-01-13 16:31:16.000000000 +0300 +++ binutils-2.30/ltmain.sh 2018-06-13 08:19:13.355163400 +0300 @@ -976,7 +976,7 @@ case $host in - *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* ) + *cygwin* | *msys* | *mingw* | *pw32* | *cegcc* | *solaris2* ) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; @@ -1453,7 +1453,7 @@ # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in - cygwin* | mingw* | pw32* | os2* | cegcc*) + cygwin* | msys* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac @@ -2279,7 +2279,7 @@ 'exit $?' tstripme="$stripme" case $host_os in - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" @@ -2385,7 +2385,7 @@ # Do a test to see if this is really a libtool program. case $host in - *cygwin* | *mingw*) + *cygwin* | *msys* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result @@ -2460,7 +2460,7 @@ # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in - */usr/bin/install*,*cygwin*) + */usr/bin/install*,*cygwin* | */usr/bin/install*,*msys*) case $file:$destfile in *.exe:*.exe) # this is ok @@ -2595,7 +2595,7 @@ $RM $export_symbols ${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' < "$nlist" > "$export_symbols" case $host in - *cygwin* | *mingw* | *cegcc* ) + *cygwin* | *msys* | *mingw* | *cegcc* ) echo EXPORTS > "$output_objdir/$outputname.def" cat "$export_symbols" >> "$output_objdir/$outputname.def" ;; @@ -2607,7 +2607,7 @@ $GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" case $host in - *cygwin* | *mingw* | *cegcc* ) + *cygwin* | *msys* | *mingw* | *cegcc* ) echo EXPORTS > "$output_objdir/$outputname.def" cat "$nlist" >> "$output_objdir/$outputname.def" ;; @@ -2663,7 +2663,7 @@ } lt_dlsymlist; " case $host in - *cygwin* | *mingw* | *cegcc* ) + *cygwin* | *msys* | *mingw* | *cegcc* ) echo >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation @@ -2749,7 +2749,7 @@ # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in - *cygwin* | *mingw* | *cegcc* ) + *cygwin* | *msys* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` @@ -3192,7 +3192,7 @@ func_to_host_path_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` ;; - *cygwin* ) + *cygwin* | *msys*) func_to_host_path_result=`cygpath -w "$1" | $SED -e "$lt_sed_naive_backslashify"` ;; @@ -3265,7 +3265,7 @@ ( cmd //c echo "$func_to_host_pathlist_tmp1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` ;; - *cygwin* ) + *cygwin* | *msys*) func_to_host_pathlist_result=`cygpath -w -p "$func_to_host_pathlist_tmp1" | $SED -e "$lt_sed_naive_backslashify"` ;; @@ -3571,7 +3571,7 @@ { EOF case "$host" in - *mingw* | *cygwin* ) + *mingw* | *cygwin* | *msys*) # make stdout use "unix" line endings echo " setmode(1,_O_BINARY);" ;; @@ -4233,7 +4233,7 @@ { $opt_debug case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + *-*-cygwin* | *-*-msys* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra @@ -4713,7 +4713,7 @@ ;; esac case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + *-*-cygwin* | *-*-msys* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; @@ -4733,7 +4733,7 @@ -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + *-*-cygwin* | *-*-msys* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; @@ -4813,7 +4813,7 @@ -no-install) case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + *-*-cygwin* | *-*-msys* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" @@ -5772,7 +5772,7 @@ if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in - *cygwin* | *mingw* | *cegcc*) + *cygwin* | *msys* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs="$notinst_deplibs $lib" need_relink=no @@ -5842,7 +5842,7 @@ elif test -n "$soname_spec"; then # bleh windows case $host in - *cygwin* | mingw* | *cegcc*) + *cygwin* | *msys* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" @@ -6693,7 +6693,7 @@ if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + *-*-cygwin* | *-*-msys* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) @@ -7194,7 +7194,7 @@ orig_export_symbols= case $host_os in - cygwin* | mingw* | cegcc*) + cygwin* | msys* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then @@ -7710,7 +7710,7 @@ prog) case $host in - *cygwin*) func_stripname '' '.exe' "$output" + *cygwin* | *msys*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ @@ -7823,7 +7823,7 @@ esac fi case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + *-*-cygwin* | *-*-msys* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; @@ -7901,7 +7901,7 @@ # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=no ;; - *cygwin* | *mingw* ) + *cygwin* | *msys* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi @@ -8029,14 +8029,14 @@ esac # test for cygwin because mv fails w/o .exe extensions case $host in - *cygwin*) + *cygwin* | *msys*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in - *cygwin* | *mingw* ) + *cygwin* | *msys* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result @@ -8343,7 +8343,7 @@ # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + *cygwin*,*lai,yes,no,*.dll | *msys*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test "x$bindir" != x ; then diff -Naur binutils-2.30.orig/ltoptions.m4 binutils-2.30/ltoptions.m4 --- binutils-2.30.orig/ltoptions.m4 2018-01-13 16:31:16.000000000 +0300 +++ binutils-2.30/ltoptions.m4 2018-06-13 08:19:13.355163400 +0300 @@ -126,7 +126,7 @@ [enable_win32_dll=yes case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) +*-*-cygwin* | *-*-msys* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) diff -Naur binutils-2.30.orig/opcodes/configure binutils-2.30/opcodes/configure --- binutils-2.30.orig/opcodes/configure 2018-01-27 17:58:57.000000000 +0300 +++ binutils-2.30/opcodes/configure 2018-06-13 08:19:13.355163400 +0300 @@ -5719,7 +5719,7 @@ lt_cv_sys_max_cmd_len=-1; ;; - cygwin* | mingw* | cegcc*) + cygwin* | msys* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, @@ -6061,7 +6061,7 @@ lt_cv_file_magic_test_file=/shlib/libc.so ;; -cygwin*) +cygwin* | msys*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' @@ -6641,7 +6641,7 @@ aix*) symcode='[BCDT]' ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) @@ -8226,7 +8226,7 @@ # PIC is the default for these OSes. ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | cygwin* | msys* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style @@ -8308,7 +8308,7 @@ fi ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | cygwin* | msys* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' @@ -8770,7 +8770,7 @@ extract_expsyms_cmds= case $host_os in - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. @@ -8885,7 +8885,7 @@ fi ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' @@ -9316,7 +9316,7 @@ export_dynamic_flag_spec=-rdynamic ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is @@ -10217,14 +10217,14 @@ # libtool to hard-code these into programs ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + yes,cygwin* | yes,msys* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -10248,6 +10248,12 @@ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; + msys*) + # Msys DLLs use 'msys-' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/msys-/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' @@ -10884,7 +10890,7 @@ lt_cv_dlopen_libs= ;; - cygwin*) + cygwin* | msys*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; @@ -12381,7 +12387,7 @@ LIBM= case $host in -*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-msys* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) @@ -12551,6 +12557,10 @@ SHARED_LDFLAGS="-no-undefined" SHARED_LIBADD="-L`pwd`/../bfd -lbfd -L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin" ;; + *-*-msys*) + SHARED_LDFLAGS="-no-undefined" + SHARED_LIBADD="-L`pwd`/../bfd -lbfd -L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lmsys-2.0" + ;; *-*-darwin*) SHARED_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.dylib ${SHARED_LIBADD}" SHARED_DEPENDENCIES="../bfd/libbfd.la" diff -Naur binutils-2.30.orig/zlib/configure binutils-2.30/zlib/configure --- binutils-2.30.orig/zlib/configure 2018-01-13 16:31:16.000000000 +0300 +++ binutils-2.30/zlib/configure 2018-06-13 08:19:13.370763400 +0300 @@ -4644,7 +4644,7 @@ lt_cv_sys_max_cmd_len=-1; ;; - cygwin* | mingw* | cegcc*) + cygwin* | msys* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, @@ -4986,7 +4986,7 @@ lt_cv_file_magic_test_file=/shlib/libc.so ;; -cygwin*) +cygwin* | msys*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' @@ -5566,7 +5566,7 @@ aix*) symcode='[BCDT]' ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) @@ -7456,7 +7456,7 @@ # PIC is the default for these OSes. ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | cygwin* | msys* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style @@ -7538,7 +7538,7 @@ fi ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | cygwin* | msys* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' @@ -8000,7 +8000,7 @@ extract_expsyms_cmds= case $host_os in - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. @@ -8115,7 +8115,7 @@ fi ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' @@ -8552,7 +8552,7 @@ export_dynamic_flag_spec=-rdynamic ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is @@ -9456,14 +9456,14 @@ # libtool to hard-code these into programs ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + yes,cygwin* | yes,msys* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -9487,6 +9487,12 @@ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; + msys*) + # MSYS DLLs use 'msys-' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/msys-/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' @@ -10126,7 +10132,7 @@ lt_cv_dlopen_libs= ;; - cygwin*) + cygwin* | msys*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;;