commit 2854eab93198f8e846ed36a0c9e0fccf4978961c parent edf692a61627394c26132e203857afc5237495c3 Author: Evgeny Grin (Karlson2k) <k2k@narod.ru> Date: Fri, 7 Apr 2023 22:06:24 +0300 Updated libtool fixes Diffstat:
18 files changed, 1706 insertions(+), 725 deletions(-)
diff --git a/contrib/autotools-patches/0003-Pass-various-flags-to-GCC.patch b/contrib/autotools-patches/0003-Pass-various-flags-to-GCC.patch @@ -1,20 +0,0 @@ -diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh -index 21e5e078..ddd6e36f 100755 ---- a/build-aux/ltmain.sh -+++ b/build-aux/ltmain.sh -@@ -7369,11 +7369,14 @@ func_mode_link () - # -fsanitize=* Clang/GCC memory and address sanitizer - # -fuse-ld=* Linker select flags for GCC - # -static-* direct GCC to link specific libraries statically -+ # -shared-* direct GCC to link shared version of specific libraries - # -fcilkplus Cilk Plus language extension features for C/C++ - -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ - -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ - -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ -- -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus) -+ -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-shared-*|-fcilkplus| \ -+ -ftree-parallelize-loops=*|-fgnu-tm|-ffast-math| \ -+ -funsafe-math-optimizations|-fvtable-verify*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result - func_append compile_command " $arg" diff --git a/contrib/autotools-patches/0003-Pass-various-runtime-library-flags-to-GCC.mingw-mod.patch b/contrib/autotools-patches/0003-Pass-various-runtime-library-flags-to-GCC.mingw-mod.patch @@ -1,30 +0,0 @@ -[PATCH 3/6] Pass various runtime library flags to GCC. -* build-aux/ltmain.in (func_mode_link): Pass the --shared-libgcc and -static-lib* flags along to GCC. ---- - build-aux/ltmain.sh | 5 ++++- - 1 files changed, 4 insertions(+), 1 deletions(-) - -diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh -index 1821779..eda7790 100644 ---- a/build-aux/ltmain.sh -+++ b/build-aux/ltmain.sh -@@ -5084,9 +5084,14 @@ func_mode_link () - # --sysroot=* for sysroot support - # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization - # -stdlib=* select c++ std lib with clang -+ # -{shared,static}-libgcc, -static-{libgfortran|libstdc++} -+ # link against specified runtime library - -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ - -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -- -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*) -+ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ -+ -ftree-parallelize-loops=*|-fcilkplus|-fgnu-tm|-ffast-math| \ -+ -funsafe-math-optimizations|-fvtable-verify*| \ -+ -shared-libgcc|-static-libgcc|-static-libgfortran|-static-libstdc++) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result - func_append compile_command " $arg" --- -1.7.1 - diff --git a/contrib/autotools-patches/0006-Fix-strict-ansi-vs-posix-mod.patch b/contrib/autotools-patches/0006-Fix-strict-ansi-vs-posix-mod.patch @@ -1,22 +0,0 @@ -[PATCH 6/6] Fix STRICT_ANSI vs POSIX -* build-aux/ltmain.in (func_mode_link): Also check for _POSIX -as well as __STRICT_ANSI__ to avoid re-definitions. ---- - build-aux/ltmain.sh | 4 +++- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh -index af46cb8..244bb5b 100644 ---- a/build-aux/ltmain.sh -+++ b/build-aux/ltmain.sh -@@ -3382,7 +3382,7 @@ - - /* declarations of non-ANSI functions */ - #if defined __MINGW32__ --# ifdef __STRICT_ANSI__ -+# if defined(__STRICT_ANSI__) && !defined(__MINGW64_VERSION_MAJOR) || defined(_POSIX_) - int _putenv (const char *); - # endif - #elif defined __CYGWIN__ --- -1.7.0.2.msysgit.0 diff --git a/contrib/autotools-patches/0009-libtool-2.4.2.418-msysize-mod.patch b/contrib/autotools-patches/0009-libtool-2.4.2.418-msysize-mod.patch @@ -1,443 +0,0 @@ -diff --git a/build-aux/config.guess b/build-aux/config.guess -index f50dcdb6..cd89e459 100755 ---- a/build-aux/config.guess -+++ b/build-aux/config.guess -@@ -883,6 +883,9 @@ EOF - 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 libtool-2.4.2.418-orig/build-aux/ltmain.sh libtool-2.4.2.418/build-aux/ltmain.sh ---- libtool-2.4.2.418-orig/build-aux/ltmain.sh 2013-10-27 02:53:58.000000000 +0400 -+++ libtool-2.4.2.418/build-aux/ltmain.sh 2014-09-02 10:29:08.840800000 +0400 -@@ -2315,7 +2315,7 @@ - case $host in - # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 - # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 -- *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) -+ *cygwin* | *msys* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) - # don't eliminate duplications in $postdeps and $predeps - opt_duplicate_compiler_generated_deps=: - ;; -@@ -3328,7 +3328,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 -@@ -4201,7 +4201,7 @@ - 'exit $?' - tstripme=$stripme - case $host_os in -- cygwin* | mingw* | pw32* | cegcc*) -+ cygwin* | msys* | mingw* | pw32* | cegcc*) - case $realname in - *.dll.a) - tstripme= -@@ -4307,7 +4307,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 -@@ -4382,7 +4382,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 -@@ -4535,7 +4535,7 @@ - $RM $export_symbols - eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' - case $host in -- *cygwin* | *mingw* | *cegcc* ) -+ *cygwin* | *msys* | *mingw* | *cegcc* ) - eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' - ;; -@@ -4547,7 +4547,7 @@ - eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - case $host in -- *cygwin* | *mingw* | *cegcc* ) -+ *cygwin* | *msys* | *mingw* | *cegcc* ) - eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' - ;; -@@ -4561,7 +4561,7 @@ - func_basename "$dlprefile" - name=$func_basename_result - case $host in -- *cygwin* | *mingw* | *cegcc* ) -+ *cygwin* | *msys* | *mingw* | *cegcc* ) - # if an import library, we need to obtain dlname - if func_win32_import_lib_p "$dlprefile"; then - func_tr_sh "$dlprefile" -@@ -4736,7 +4736,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%"` -@@ -5629,7 +5629,7 @@ - { - EOF - case $host in -- *mingw* | *cygwin* ) -+ *mingw* | *cygwin* | *msys* ) - # make stdout use "unix" line endings - echo " setmode(1,_O_BINARY);" - ;; -@@ -6350,7 +6350,7 @@ - $debug_cmd - - 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 - # what system we are compiling for in order to pass an extra -@@ -6843,7 +6843,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:"*) ;; -@@ -6863,7 +6863,7 @@ - -l*) - if test X-lc = "X$arg" || test X-lm = "X$arg"; 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 - ;; -@@ -6946,7 +6946,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" -@@ -7812,7 +7812,7 @@ - fi - case $host in - # special handling for platforms with PE-DLLs. -- *cygwin* | *mingw* | *cegcc* ) -+ *cygwin* | *msys* | *mingw* | *cegcc* ) - # Linker will automatically link against shared library if both - # static and shared are present. Therefore, ensure we extract - # symbols from the import library if a shared library is present -@@ -7956,7 +7956,7 @@ - if test -n "$library_names" && - { test no = "$use_static_libs" || test -z "$old_library"; }; then - case $host in -- *cygwin* | *mingw* | *cegcc* | *os2*) -+ *cygwin* | *msys* | *mingw* | *cegcc* | *os2*) - # No point in relinking DLLs because paths are not encoded - func_append notinst_deplibs " $lib" - need_relink=no -@@ -8026,7 +8026,7 @@ - elif test -n "$soname_spec"; then - # bleh windows - case $host in -- *cygwin* | mingw* | *cegcc* | *os2*) -+ *cygwin* | *msys* | mingw* | *cegcc* | *os2*) - func_arith $current - $age - major=$func_arith_result - versuffix=-$major -@@ -8899,7 +8899,7 @@ - if test yes = "$build_libtool_libs"; 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]) -@@ -9413,7 +9413,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 - func_dll_def_p "$export_symbols" || { -@@ -9970,7 +9970,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" && \ -@@ -10081,7 +10081,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:"*) ;; -@@ -10159,7 +10159,7 @@ - # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. - wrappers_required=false - ;; -- *cygwin* | *mingw* ) -+ *cygwin* | *msys* | *mingw* ) - test yes = "$build_libtool_libs" || wrappers_required=false - ;; - *) -@@ -10305,14 +10305,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 -@@ -10644,7 +10644,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 -n "$bindir"; then - func_relative_path "$install_libdir" "$bindir" -diff -Naur libtool-2.4.2.418-orig/m4/libtool.m4 libtool-2.4.2.418/m4/libtool.m4 ---- libtool-2.4.2.418-orig/m4/libtool.m4 2013-10-26 03:37:46.000000000 +0400 -+++ libtool-2.4.2.418/m4/libtool.m4 2014-09-02 10:19:40.084800000 +0400 -@@ -1665,7 +1665,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, -@@ -1913,7 +1913,7 @@ - lt_cv_dlopen_libs= - ;; - -- cygwin*) -+ cygwin* | msys*) - lt_cv_dlopen=dlopen - lt_cv_dlopen_libs= - ;; -@@ -2399,7 +2399,7 @@ - # 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 -@@ -2431,6 +2431,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' -@@ -2465,7 +2471,7 @@ - # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` - ;; -- cygwin*) -+ cygwin* | msys*) - # Convert to unix form, then to dos form, then back to unix form - # but this time dos style (no spaces!) so that the unix form looks - # like /cygdrive/c/PROGRA~1:/cygdr... -@@ -3203,7 +3209,7 @@ - esac - reload_cmds='$LD$reload_flag -o $output$reload_objs' - case $host_os in -- cygwin* | mingw* | pw32* | cegcc*) -+ cygwin* | msys* | mingw* | pw32* | cegcc*) - if test yes != "$GCC"; then - reload_cmds=false - fi -@@ -3259,7 +3265,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' -@@ -3564,7 +3570,7 @@ - [lt_cv_sharedlib_from_linklib_cmd='unknown' - - case $host_os in --cygwin* | mingw* | pw32* | cegcc*) -+cygwin* | msys* | mingw* | pw32* | cegcc*) - # two different shell functions defined in ltmain.sh; - # decide which one to use based on capabilities of $DLLTOOL - case `$DLLTOOL --help 2>&1` in -@@ -3634,7 +3640,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*) -@@ -3709,7 +3715,7 @@ - aix*) - symcode='[[BCDT]]' - ;; --cygwin* | mingw* | pw32* | cegcc*) -+cygwin* | msys* | mingw* | pw32* | cegcc*) - symcode='[[ABCDGISTW]]' - ;; - hpux*) -@@ -4015,7 +4021,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 -@@ -4086,7 +4092,7 @@ - ;; - esac - ;; -- 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). - m4_if([$1], [GCJ], [], -@@ -4334,7 +4340,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 -@@ -4433,7 +4439,7 @@ - esac - ;; - -- 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], [], -@@ -4699,7 +4705,7 @@ - pw32*) - _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds - ;; -- cygwin* | mingw* | cegcc*) -+ cygwin* | msys* | mingw* | cegcc*) - case $cc_basename in - cl*) - _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' -@@ -4757,7 +4763,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++. -@@ -4872,7 +4878,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' -@@ -5247,7 +5253,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 -@@ -6241,7 +6247,7 @@ - esac - ;; - -- cygwin* | mingw* | pw32* | cegcc*) -+ cygwin* | msys* | mingw* | pw32* | cegcc*) - case $GXX,$cc_basename in - ,cl* | no,cl*) - # Native MSVC -@@ -7937,7 +7943,7 @@ - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 - ;; -- *-*-cygwin* ) -+ *-*-cygwin* | *-*-msys* ) - lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 - ;; - * ) # otherwise, assume *nix -@@ -7945,12 +7951,12 @@ - ;; - esac - ;; -- *-*-cygwin* ) -+ *-*-cygwin* | *-*-msys* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin - ;; -- *-*-cygwin* ) -+ *-*-cygwin* | *-*-msys* ) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; - * ) # otherwise, assume *nix diff --git a/contrib/autotools-patches/0010-libtool-2.4.2-include-process-h-mod.patch b/contrib/autotools-patches/0010-libtool-2.4.2-include-process-h-mod.patch @@ -1,12 +0,0 @@ -diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh -index 0418007..91276c2 100644 ---- a/build-aux/ltmain.sh -+++ b/build-aux/ltmain.sh -@@ -4163,6 +4163,7 @@ - # include <unistd.h> - # include <stdint.h> - # ifdef __CYGWIN__ -+# include <process.h> - # include <io.h> - # endif - #endif diff --git a/contrib/autotools-patches/0012-Prefer-response-files-over-linker-scripts-for-mingw-mod.patch b/contrib/autotools-patches/0012-Prefer-response-files-over-linker-scripts-for-mingw-mod.patch @@ -1,83 +0,0 @@ -From ec15841963ca3aab3bc88fb0932c014337284bfc Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin@martin.st> -Date: Wed, 10 Oct 2018 10:47:21 +0300 -Subject: [PATCH 2/2] Prefer response files over linker scripts for mingw tools - -The GCC/binutils tools support response files just fine, while -lld (impersonating GNU ld) only supports response files, not -linker scripts. Using a linker script as input just to pass a -list of files is overkill for cases when a response file is enough. ---- - build-aux/ltmain.in | 28 ++++++++++++++-------------- - m4/libtool.m4 | 2 ++ - 2 files changed, 16 insertions(+), 14 deletions(-) - -diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh -index e2fb263..db5d590 100644 ---- a/build-aux/ltmain.sh -+++ b/build-aux/ltmain.sh -@@ -7932,20 +7932,7 @@ EOF - last_robj= - k=1 - -- if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then -- output=$output_objdir/$output_la.lnkscript -- func_verbose "creating GNU ld script: $output" -- echo 'INPUT (' > $output -- for obj in $save_libobjs -- do -- func_to_tool_file "$obj" -- $ECHO "$func_to_tool_file_result" >> $output -- done -- echo ')' >> $output -- func_append delfiles " $output" -- func_to_tool_file "$output" -- output=$func_to_tool_file_result -- elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then -+ if test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then - output=$output_objdir/$output_la.lnk - func_verbose "creating linker input file list: $output" - : > $output -@@ -7964,6 +7951,19 @@ EOF - func_append delfiles " $output" - func_to_tool_file "$output" - output=$firstobj\"$file_list_spec$func_to_tool_file_result\" -+ elif test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then -+ output=$output_objdir/$output_la.lnkscript -+ func_verbose "creating GNU ld script: $output" -+ echo 'INPUT (' > $output -+ for obj in $save_libobjs -+ do -+ func_to_tool_file "$obj" -+ $ECHO "$func_to_tool_file_result" >> $output -+ done -+ echo ')' >> $output -+ func_append delfiles " $output" -+ func_to_tool_file "$output" -+ output=$func_to_tool_file_result - else - if test -n "$save_libobjs"; then - func_verbose "creating reloadable object files..." -diff --git a/m4/libtool.m4 b/m4/libtool.m4 -index d9322d0..9046a84 100644 ---- a/m4/libtool.m4 -+++ b/m4/libtool.m4 -@@ -5130,6 +5130,7 @@ _LT_EOF - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] -+ _LT_TAGVAR(file_list_spec, $1)='@' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -@@ -6706,6 +6707,7 @@ if test yes != "$_lt_caught_CXX_error"; then - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -+ _LT_TAGVAR(file_list_spec, $1)='@' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' --- -2.7.4 - diff --git a/contrib/autotools-patches/0013-Allow-statically-linking-compiler-support-libraries-mod.patch b/contrib/autotools-patches/0013-Allow-statically-linking-compiler-support-libraries-mod.patch @@ -1,38 +0,0 @@ -From b9f77cae8cfbe850e58cac686fcb4d246b5bfc51 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin@martin.st> -Date: Mon, 19 Aug 2019 13:34:51 +0300 -Subject: [PATCH] Allow statically linking compiler support libraries when - linking a library - -For cases with deplibs_check_method="file_magic ..." (as it is for mingw), -there were previously no way that a static library could be accepted -here. ---- - build-aux/ltmain.in | 11 +++++++++-- - 1 file changed, 9 insertions(+), 2 deletions(-) - -diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh -index e2fb2633..db4d775c 100644 ---- a/build-aux/ltmain.sh -+++ b/build-aux/ltmain.sh -@@ -5870,8 +5870,15 @@ func_mode_link () - fi - case $linkmode in - lib) -- # Linking convenience modules into shared libraries is allowed, -- # but linking other static libraries is non-portable. -+ # Linking convenience modules and compiler provided static libraries -+ # into shared libraries is allowed, but linking other static -+ # libraries is non-portable. -+ case $deplib in -+ */libgcc*.$libext | */libclang_rt*.$libext) -+ deplibs="$deplib $deplibs" -+ continue -+ ;; -+ esac - case " $dlpreconveniencelibs " in - *" $deplib "*) ;; - *) --- -2.17.1 - diff --git a/contrib/autotools-patches/0014-Support-llvm-objdump-f-output-mod.patch b/contrib/autotools-patches/0014-Support-llvm-objdump-f-output-mod.patch @@ -1,39 +0,0 @@ -From 03dabb6a70847761e65572a2a7b770a3b1b9f123 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mateusz=20Miku=C5=82a?= <mati865@gmail.com> -Date: Mon, 12 Apr 2021 23:44:10 +0200 -Subject: [PATCH] Support llvm-objdump -f output - ---- - build-aux/ltmain.in | 2 +- - m4/libtool.m4 | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh -index a9f070a..4a434cc 100644 ---- a/build-aux/ltmain.sh -+++ b/build-aux/ltmain.sh -@@ -3019,7 +3019,7 @@ func_win32_libid () - *ar\ archive*) # could be an import, or static - # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. - if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | -- $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then -+ $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64|coff-arm|coff-arm64|coff-i386|coff-x86-64)' >/dev/null; then - case $nm_interface in - "MS dumpbin") - if func_cygming_ms_implib_p "$1" || -diff --git a/m4/libtool.m4 b/m4/libtool.m4 -index 21a7d60..594be9c 100644 ---- a/m4/libtool.m4 -+++ b/m4/libtool.m4 -@@ -3473,7 +3473,7 @@ mingw* | pw32*) - lt_cv_file_magic_cmd='func_win32_libid' - else - # Keep this pattern in sync with the one in func_win32_libid. -- lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' -+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64|coff-arm|coff-arm64|coff-i386|coff-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; --- -2.31.1 - diff --git a/contrib/autotools-patches/apply-all.sh b/contrib/autotools-patches/apply-all.sh @@ -1,38 +0,0 @@ -#!/bin/bash - -# -# This file applies optional libtool patches mainly for better MSys2 compatibility, -# especially for MSys2/Clang{64,32} toolchains. -# It's a pity that these patches haven't been sent upstream. -# -# Based on Debian SID baseline files as of December 2021. -# - -patchesdir="$(dirname "$BASH_SOURCE")" || exit 2 -test -n "$patchesdir" || exit 2 - -patches=( - 0003-Pass-various-flags-to-GCC.patch - 0006-Fix-strict-ansi-vs-posix-mod.patch - 0009-libtool-2.4.2.418-msysize-mod.patch - 0010-libtool-2.4.2-include-process-h-mod.patch - 0011-Pick-up-clang_rt-static-archives-compiler-internal-l.patch - 0012-Prefer-response-files-over-linker-scripts-for-mingw-mod.patch - 0013-Allow-statically-linking-compiler-support-libraries-mod.patch - 0014-Support-llvm-objdump-f-output-mod.patch -) - -failed=( ) - -cd "${patchesdir}/../.." || exit 1 - -for patch in ${patches[@]}; do - patch -N -p1 --no-backup-if-mismatch -r - -i "${patchesdir}/${patch}" || failed+=("$patch") -done - -if [[ -n "${failed[@]}" ]]; then - printf 'Failed patch: %s\n' "${failed[@]}" >&2 - exit 2 -fi - -exit 0 diff --git a/contrib/fixes-libtool/0003-Pass-various-runtime-library-flags-to-GCC.mingw.mod.patch b/contrib/fixes-libtool/0003-Pass-various-runtime-library-flags-to-GCC.mingw.mod.patch @@ -0,0 +1,31 @@ +The patch below was modified to work on top of Debian patches + +[PATCH 3/6] Pass various runtime library flags to GCC. +* build-aux/ltmain.in (func_mode_link): Pass the +-shared-libgcc and -static-lib* flags along to GCC. + +diff -urN libtool-2.4.7/build-aux/ltmain.in.orig libtool-2.4.7/build-aux/ltmain.in +--- libtool-2.4.7/build-aux/ltmain.in.orig 2022-05-25 13:57:50.311734300 +0200 ++++ libtool-2.4.7/build-aux/ltmain.in 2022-05-25 14:01:54.621866600 +0200 +@@ -7559,15 +7559,19 @@ + # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -specs=* GCC specs files + # -stdlib=* select c++ std lib with clang ++ # -{shared,static}-libgcc, -static-{libgfortran|libstdc++} ++ # link against specified runtime library + # -fsanitize=* Clang/GCC memory and address sanitizer + # -fuse-ld=* Linker select flags for GCC +- # -static-* direct GCC to link specific libraries statically + # -fcilkplus Cilk Plus language extension features for C/C++ + # -Wa,* Pass flags directly to the assembler + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ +- -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus|-Wa,*) ++ -specs=*|-fsanitize=*|-fuse-ld=*|-Wa,*|-ftree-parallelize-loops=*| \ ++ -fcilkplus|-fgnu-tm|-ffast-math|-funsafe-math-optimizations| \ ++ -fvtable-verify*|-shared-libgcc|-static-libgcc|-static-libgfortran| \ ++ -static-libstdc++) + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result + func_append compile_command " $arg" diff --git a/contrib/fixes-libtool/0006-Fix-strict-ansi-vs-posix.patch b/contrib/fixes-libtool/0006-Fix-strict-ansi-vs-posix.patch @@ -0,0 +1,22 @@ +[PATCH 6/6] Fix STRICT_ANSI vs POSIX +* build-aux/ltmain.in (func_mode_link): Also check for _POSIX +as well as __STRICT_ANSI__ to avoid re-definitions. +--- + build-aux/ltmain.in | 4 +++- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in +index af46cb8..244bb5b 100644 +--- a/build-aux/ltmain.in ++++ b/build-aux/ltmain.in +@@ -3382,7 +3382,7 @@ + + /* declarations of non-ANSI functions */ + #if defined __MINGW32__ +-# ifdef __STRICT_ANSI__ ++# if defined(__STRICT_ANSI__) && !defined(__MINGW64_VERSION_MAJOR) || defined(_POSIX_) + int _putenv (const char *); + # endif + #elif defined __CYGWIN__ +-- +1.7.0.2.msysgit.0 +\ No newline at end of file diff --git a/contrib/fixes-libtool/0009-libtool-2.4.2.418-msysize.patch b/contrib/fixes-libtool/0009-libtool-2.4.2.418-msysize.patch @@ -0,0 +1,1403 @@ +diff -urN libtool-2.4.7/build-aux/config.guess.orig libtool-2.4.7/build-aux/config.guess +--- libtool-2.4.7/build-aux/config.guess.orig 2022-05-25 14:18:47.388587800 +0200 ++++ libtool-2.4.7/build-aux/config.guess 2022-05-25 14:21:50.720326000 +0200 +@@ -950,6 +950,9 @@ + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + GUESS=x86_64-pc-cygwin + ;; ++ amd64:MSYS*:*:* | x86_64:MSYS*:*:*) ++ GUESS=x86_64-pc-msys ++ ;; + prep*:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=powerpcle-unknown-solaris2$SUN_REL + +diff -Naur libtool-2.4.3-orig/build-aux/ltmain.in libtool-2.4.3/build-aux/ltmain.in +--- libtool-2.4.3-orig/build-aux/ltmain.in 2014-09-02 09:54:56.481600000 +0400 ++++ libtool-2.4.3/build-aux/ltmain.in 2014-09-02 10:14:04.809600000 +0400 +@@ -497,7 +497,7 @@ + case $host in + # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 + # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 +- *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) ++ *cygwin* | *msys* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; +@@ -1510,7 +1510,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 +@@ -2383,7 +2383,7 @@ + 'exit $?' + tstripme=$stripme + case $host_os in +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme= +@@ -2489,7 +2489,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 +@@ -2564,7 +2564,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 +@@ -2717,7 +2717,7 @@ + $RM $export_symbols + eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in +- *cygwin* | *mingw* | *cegcc* ) ++ *cygwin* | *msys* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; +@@ -2729,7 +2729,7 @@ + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in +- *cygwin* | *mingw* | *cegcc* ) ++ *cygwin* | *msys* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; +@@ -2743,7 +2743,7 @@ + func_basename "$dlprefile" + name=$func_basename_result + case $host in +- *cygwin* | *mingw* | *cegcc* ) ++ *cygwin* | *msys* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" +@@ -2918,7 +2918,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%"` +@@ -3811,7 +3811,7 @@ + { + EOF + case $host in +- *mingw* | *cygwin* ) ++ *mingw* | *cygwin* | *msys* ) + # make stdout use "unix" line endings + echo " setmode(1,_O_BINARY);" + ;; +@@ -4567,7 +4567,7 @@ + $debug_cmd + + 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 + # what system we are compiling for in order to pass an extra +@@ -5060,7 +5060,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:"*) ;; +@@ -5080,7 +5080,7 @@ + -l*) + if test X-lc = "X$arg" || test X-lm = "X$arg"; 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 + ;; +@@ -5163,7 +5163,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" +@@ -6034,7 +6034,7 @@ + fi + case $host in + # special handling for platforms with PE-DLLs. +- *cygwin* | *mingw* | *cegcc* ) ++ *cygwin* | *msys* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present +@@ -6178,7 +6178,7 @@ + if test -n "$library_names" && + { test no = "$use_static_libs" || test -z "$old_library"; }; then + case $host in +- *cygwin* | *mingw* | *cegcc* | *os2*) ++ *cygwin* | *msys* | *mingw* | *cegcc* | *os2*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no +@@ -6248,7 +6248,7 @@ + elif test -n "$soname_spec"; then + # bleh windows + case $host in +- *cygwin* | mingw* | *cegcc* | *os2*) ++ *cygwin* | *msys* | mingw* | *cegcc* | *os2*) + func_arith $current - $age + major=$func_arith_result + versuffix=-$major +@@ -7123,7 +7123,7 @@ + if test yes = "$build_libtool_libs"; 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]) +@@ -7637,7 +7637,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 + func_dll_def_p "$export_symbols" || { +@@ -8194,7 +8194,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" && \ +@@ -8305,7 +8305,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:"*) ;; +@@ -8383,7 +8383,7 @@ + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=false + ;; +- *cygwin* | *mingw* ) ++ *cygwin* | *msys* | *mingw* ) + test yes = "$build_libtool_libs" || wrappers_required=false + ;; + *) +@@ -8529,14 +8529,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 +@@ -8878,7 +8878,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 -n "$bindir"; then + func_relative_path "$install_libdir" "$bindir" + +diff -Naur libtool-2.4.2.418-orig/build-aux/ltmain.sh libtool-2.4.2.418/build-aux/ltmain.sh +--- libtool-2.4.2.418-orig/build-aux/ltmain.sh 2013-10-27 02:53:58.000000000 +0400 ++++ libtool-2.4.2.418/build-aux/ltmain.sh 2014-09-02 10:29:08.840800000 +0400 +@@ -2315,7 +2315,7 @@ + case $host in + # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 + # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 +- *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) ++ *cygwin* | *msys* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; +@@ -3328,7 +3328,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 +@@ -4201,7 +4201,7 @@ + 'exit $?' + tstripme=$stripme + case $host_os in +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme= +@@ -4307,7 +4307,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 +@@ -4382,7 +4382,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 +@@ -4535,7 +4535,7 @@ + $RM $export_symbols + eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in +- *cygwin* | *mingw* | *cegcc* ) ++ *cygwin* | *msys* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; +@@ -4547,7 +4547,7 @@ + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in +- *cygwin* | *mingw* | *cegcc* ) ++ *cygwin* | *msys* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; +@@ -4561,7 +4561,7 @@ + func_basename "$dlprefile" + name=$func_basename_result + case $host in +- *cygwin* | *mingw* | *cegcc* ) ++ *cygwin* | *msys* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" +@@ -4736,7 +4736,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%"` +@@ -5629,7 +5629,7 @@ + { + EOF + case $host in +- *mingw* | *cygwin* ) ++ *mingw* | *cygwin* | *msys* ) + # make stdout use "unix" line endings + echo " setmode(1,_O_BINARY);" + ;; +@@ -6350,7 +6350,7 @@ + $debug_cmd + + 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 + # what system we are compiling for in order to pass an extra +@@ -6843,7 +6843,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:"*) ;; +@@ -6863,7 +6863,7 @@ + -l*) + if test X-lc = "X$arg" || test X-lm = "X$arg"; 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 + ;; +@@ -6946,7 +6946,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" +@@ -7812,7 +7812,7 @@ + fi + case $host in + # special handling for platforms with PE-DLLs. +- *cygwin* | *mingw* | *cegcc* ) ++ *cygwin* | *msys* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present +@@ -7956,7 +7956,7 @@ + if test -n "$library_names" && + { test no = "$use_static_libs" || test -z "$old_library"; }; then + case $host in +- *cygwin* | *mingw* | *cegcc* | *os2*) ++ *cygwin* | *msys* | *mingw* | *cegcc* | *os2*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no +@@ -8026,7 +8026,7 @@ + elif test -n "$soname_spec"; then + # bleh windows + case $host in +- *cygwin* | mingw* | *cegcc* | *os2*) ++ *cygwin* | *msys* | mingw* | *cegcc* | *os2*) + func_arith $current - $age + major=$func_arith_result + versuffix=-$major +@@ -8899,7 +8899,7 @@ + if test yes = "$build_libtool_libs"; 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]) +@@ -9413,7 +9413,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 + func_dll_def_p "$export_symbols" || { +@@ -9970,7 +9970,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" && \ +@@ -10081,7 +10081,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:"*) ;; +@@ -10159,7 +10159,7 @@ + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=false + ;; +- *cygwin* | *mingw* ) ++ *cygwin* | *msys* | *mingw* ) + test yes = "$build_libtool_libs" || wrappers_required=false + ;; + *) +@@ -10305,14 +10305,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 +@@ -10644,7 +10644,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 -n "$bindir"; then + func_relative_path "$install_libdir" "$bindir" +--- libtool-2.4.7/configure.orig 2022-05-25 14:05:58.332605400 +0200 ++++ libtool-2.4.7/configure 2022-05-25 14:11:29.613646200 +0200 +@@ -5988,7 +5988,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, +@@ -6154,7 +6154,7 @@ + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; +- *-*-cygwin* ) ++ *-*-cygwin* | *-*-msys* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix +@@ -6162,12 +6162,12 @@ + ;; + esac + ;; +- *-*-cygwin* ) ++ *-*-cygwin* | *-*-msys* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; +- *-*-cygwin* ) ++ *-*-cygwin* | *-*-msys* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix +@@ -6233,7 +6233,7 @@ + esac + reload_cmds='$LD$reload_flag -o $output$reload_objs' + case $host_os in +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + if test yes != "$GCC"; then + reload_cmds=false + fi +@@ -6486,7 +6486,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' +@@ -6802,7 +6802,7 @@ + lt_cv_sharedlib_from_linklib_cmd='unknown' + + case $host_os in +-cygwin* | mingw* | pw32* | cegcc*) ++cygwin* | msys* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in +@@ -7310,7 +7310,7 @@ + aix*) + symcode='[BCDT]' + ;; +-cygwin* | mingw* | pw32* | cegcc*) ++cygwin* | msys* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; + hpux*) +@@ -8912,7 +8912,7 @@ + enable_win32_dll=yes + + case $host in +-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) ++*-*-cygwin* | *-*-msys* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. + set dummy ${ac_tool_prefix}as; ac_word=$2 +@@ -9813,7 +9813,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 +@@ -9916,7 +9916,7 @@ + esac + ;; + +- 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' +@@ -10418,7 +10418,7 @@ + extract_expsyms_cmds= + + case $host_os in +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++ or Intel C++ Compiler. +@@ -10533,7 +10533,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' +@@ -11074,7 +11074,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++ or Intel C++ Compiler. + # hardcode_libdir_flag_spec is actually meaningless, as there is +@@ -12110,7 +12110,7 @@ + # 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 +@@ -12136,9 +12136,9 @@ + shlibpath_overrides_runpath=yes + + case $host_os in +- cygwin*) ++ cygwin* | msys*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' +- soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ++ 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" + ;; +@@ -12176,7 +12176,7 @@ + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; +- cygwin*) ++ cygwin* | msys*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... +@@ -12878,7 +12878,7 @@ + lt_cv_dlopen_libs= + ;; + +- cygwin*) ++ cygwin* | msys*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; +@@ -13827,7 +13827,7 @@ + beos*) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la" + ;; +-cygwin* | mingw* | pw32*) ++cygwin* | msys* | mingw* | pw32*) + ac_fn_c_check_decl "$LINENO" "cygwin_conv_path" "ac_cv_have_decl_cygwin_conv_path" "#include <sys/cygwin.h> + " + if test "x$ac_cv_have_decl_cygwin_conv_path" = xyes; then : +@@ -14242,7 +14242,7 @@ + $as_echo_n "(cached) " >&6 + else + case $host_os in #( +- *cygwin*) ++ *cygwin* | *msys*) + lt_cv_sys_argz_works=no + if test no != "$cross_compiling"; then + lt_cv_sys_argz_works="guessing no" +@@ -15517,7 +15517,7 @@ + esac + ;; + +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl* | ,icl* | no,icl*) + # Native MSVC or ICC +@@ -16528,7 +16528,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 +@@ -16603,7 +16603,7 @@ + ;; + esac + ;; +- 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). + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' +@@ -17092,7 +17092,7 @@ + pw32*) + export_symbols_cmds_CXX=$ltdll_cmds + ;; +- cygwin* | mingw* | cegcc*) ++ cygwin* | msys* | mingw* | cegcc*) + case $cc_basename in + cl* | icl*) + exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' +@@ -17413,7 +17413,7 @@ + # 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 +@@ -17439,7 +17439,7 @@ + shlibpath_overrides_runpath=yes + + case $host_os in +- cygwin*) ++ cygwin* | msys*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' +- soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ++ soname_spec='`echo $libname | $SED -e 's/^lib/msys-/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + +@@ -17478,7 +17478,7 @@ + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; +- cygwin*) ++ cygwin* | msys*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... +@@ -18519,7 +18519,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 +@@ -18622,7 +18622,7 @@ + esac + ;; + +- 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_F77='-DDLL_EXPORT' +@@ -19109,7 +19109,7 @@ + extract_expsyms_cmds= + + case $host_os in +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++ or Intel C++ Compiler. +@@ -19224,7 +19224,7 @@ + fi + ;; + +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_F77='-L$libdir' +@@ -19753,7 +19753,7 @@ + export_dynamic_flag_spec_F77=-rdynamic + ;; + +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++ or Intel C++ Compiler. + # hardcode_libdir_flag_spec is actually meaningless, as there is +@@ -20581,7 +20581,7 @@ + # 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 +@@ -20607,9 +20607,9 @@ + shlibpath_overrides_runpath=yes + + case $host_os in +- cygwin*) ++ cygwin* | msys*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' +- soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ++ soname_spec='`echo $libname | $SED -e 's/^lib/msys-/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + + ;; + mingw* | cegcc*) +@@ -20646,7 +20646,7 @@ + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; +- cygwin*) ++ cygwin* | msys*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... +@@ -21822,7 +21822,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 +@@ -21925,7 +21925,7 @@ + esac + ;; + +- 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_FC='-DDLL_EXPORT' +@@ -22412,7 +22412,7 @@ + extract_expsyms_cmds= + + case $host_os in +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++ or Intel C++ Compiler. +@@ -22527,7 +22527,7 @@ + fi + ;; + +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, FC) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_FC='-L$libdir' +@@ -23056,7 +23056,7 @@ + export_dynamic_flag_spec_FC=-rdynamic + ;; + +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++ or Intel C++ Compiler. + # hardcode_libdir_flag_spec is actually meaningless, as there is +@@ -23884,7 +23884,7 @@ + # 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 +@@ -23910,9 +23910,9 @@ + shlibpath_overrides_runpath=yes + + case $host_os in +- cygwin*) ++ cygwin* | msys*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' +- soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ++ soname_spec='`echo $libname | $SED -e 's/^lib/msys-/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + + ;; + mingw* | cegcc*) +@@ -23949,7 +23949,7 @@ + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; +- cygwin*) ++ cygwin* | msys*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... +@@ -24844,7 +24844,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 +@@ -24947,7 +24947,7 @@ + esac + ;; + +- 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_GO='-DDLL_EXPORT' +@@ -25434,7 +25434,7 @@ + extract_expsyms_cmds= + + case $host_os in +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++ or Intel C++ Compiler. +@@ -25549,7 +25549,7 @@ + fi + ;; + +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, GO) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_GO='-L$libdir' +@@ -26090,7 +26090,7 @@ + export_dynamic_flag_spec_GO=-rdynamic + ;; + +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++ or Intel C++ Compiler. + # hardcode_libdir_flag_spec is actually meaningless, as there is +@@ -27073,7 +27073,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 +@@ -27176,7 +27176,7 @@ + esac + ;; + +- 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). + +@@ -27663,7 +27663,7 @@ + extract_expsyms_cmds= + + case $host_os in +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++ or Intel C++ Compiler. +@@ -27778,7 +27778,7 @@ + fi + ;; + +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_GCJ='-L$libdir' +@@ -28319,7 +28319,7 @@ + export_dynamic_flag_spec_GCJ=-rdynamic + ;; + +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++ or Intel C++ Compiler. + # hardcode_libdir_flag_spec is actually meaningless, as there is + +diff -urN libtool-2.4.7/libltdl/configure.orig libtool-2.4.7/libltdl/configure +--- libtool-2.4.7/libltdl/configure.orig 2022-05-25 14:29:13.245182300 +0200 ++++ libtool-2.4.7/libltdl/configure 2022-05-25 14:30:03.920944200 +0200 +@@ -4774,7 +4774,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, +@@ -4940,7 +4940,7 @@ + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; +- *-*-cygwin* ) ++ *-*-cygwin* | *-*-msys* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix +@@ -4948,12 +4948,12 @@ + ;; + esac + ;; +- *-*-cygwin* ) ++ *-*-cygwin* | *-*-msys* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; +- *-*-cygwin* ) ++ *-*-cygwin* | *-*-msys* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix +@@ -5019,7 +5019,7 @@ + esac + reload_cmds='$LD$reload_flag -o $output$reload_objs' + case $host_os in +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + if test yes != "$GCC"; then + reload_cmds=false + fi +@@ -5272,7 +5272,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' +@@ -5588,7 +5588,7 @@ + lt_cv_sharedlib_from_linklib_cmd='unknown' + + case $host_os in +-cygwin* | mingw* | pw32* | cegcc*) ++cygwin* | msys* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in +@@ -6097,7 +6097,7 @@ + aix*) + symcode='[BCDT]' + ;; +-cygwin* | mingw* | pw32* | cegcc*) ++cygwin* | msys* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; + hpux*) +@@ -7837,7 +7837,7 @@ + enable_win32_dll=yes + + case $host in +-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) ++*-*-cygwin* | *-*-msys* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. + set dummy ${ac_tool_prefix}as; ac_word=$2 +@@ -8738,7 +8738,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 +@@ -8841,7 +8841,7 @@ + esac + ;; + +- 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' +@@ -9343,7 +9343,7 @@ + extract_expsyms_cmds= + + case $host_os in +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++ or Intel C++ Compiler. +@@ -9458,7 +9458,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' +@@ -9999,7 +9999,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++ or Intel C++ Compiler. + # hardcode_libdir_flag_spec is actually meaningless, as there is +@@ -11035,7 +11035,7 @@ + # 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 +@@ -11067,6 +11067,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' +@@ -11101,7 +11107,7 @@ + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; +- cygwin*) ++ cygwin* | msys*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... +@@ -11803,7 +11809,7 @@ + lt_cv_dlopen_libs= + ;; + +- cygwin*) ++ cygwin* | msys*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; +@@ -12751,7 +12757,7 @@ + beos*) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la" + ;; +-cygwin* | mingw* | pw32*) ++cygwin* | msys* | mingw* | pw32*) + ac_fn_c_check_decl "$LINENO" "cygwin_conv_path" "ac_cv_have_decl_cygwin_conv_path" "#include <sys/cygwin.h> + " + if test "x$ac_cv_have_decl_cygwin_conv_path" = xyes; then : +@@ -13166,7 +13172,7 @@ + $as_echo_n "(cached) " >&6 + else + case $host_os in #( +- *cygwin*) ++ *cygwin* | *msys*) + lt_cv_sys_argz_works=no + if test no != "$cross_compiling"; then + lt_cv_sys_argz_works="guessing no" + +diff -urN libtool-2.4.7/m4/libtool.m4.orig libtool-2.4.7/m4/libtool.m4 +--- libtool-2.4.7/m4/libtool.m4.orig 2022-03-17 03:43:39.000000000 +0100 ++++ libtool-2.4.7/m4/libtool.m4 2022-05-25 14:26:59.035745300 +0200 +@@ -1703,7 +1703,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, +@@ -1951,7 +1951,7 @@ + lt_cv_dlopen_libs= + ;; + +- cygwin*) ++ cygwin* | msys*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; +@@ -2541,7 +2541,7 @@ + # 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 +@@ -2567,9 +2567,9 @@ + shlibpath_overrides_runpath=yes + + case $host_os in +- cygwin*) ++ cygwin* | msys*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' +- soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ++ 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"]) + ;; +@@ -2607,7 +2607,7 @@ + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; +- cygwin*) ++ cygwin* | msys*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... +@@ -3385,7 +3385,7 @@ + esac + reload_cmds='$LD$reload_flag -o $output$reload_objs' + case $host_os in +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + if test yes != "$GCC"; then + reload_cmds=false + fi +@@ -3478,7 +3478,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' +@@ -3791,7 +3791,7 @@ + [lt_cv_sharedlib_from_linklib_cmd='unknown' + + case $host_os in +-cygwin* | mingw* | pw32* | cegcc*) ++cygwin* | msys* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in +@@ -3861,7 +3861,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*) +@@ -3936,7 +3936,7 @@ + aix*) + symcode='[[BCDT]]' + ;; +-cygwin* | mingw* | pw32* | cegcc*) ++cygwin* | msys* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; + hpux*) +@@ -4242,7 +4242,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 +@@ -4318,7 +4318,7 @@ + ;; + esac + ;; +- 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). + m4_if([$1], [GCJ], [], +@@ -4566,7 +4566,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 +@@ -4670,7 +4670,7 @@ + esac + ;; + +- 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], [], +@@ -4945,7 +4945,7 @@ + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds + ;; +- cygwin* | mingw* | cegcc*) ++ cygwin* | msys* | mingw* | cegcc*) + case $cc_basename in + cl* | icl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' +@@ -5003,7 +5003,7 @@ + extract_expsyms_cmds= + + case $host_os in +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++ or Intel C++ Compiler. +@@ -5118,7 +5118,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' +@@ -5575,7 +5575,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++ or Intel C++ Compiler. + # hardcode_libdir_flag_spec is actually meaningless, as there is +@@ -6651,7 +6651,7 @@ + esac + ;; + +- cygwin* | mingw* | pw32* | cegcc*) ++ cygwin* | msys* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl* | ,icl* | no,icl*) + # Native MSVC or ICC +@@ -8348,7 +8348,7 @@ + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; +- *-*-cygwin* ) ++ *-*-cygwin* | *-*-msys* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix +@@ -8356,12 +8356,12 @@ + ;; + esac + ;; +- *-*-cygwin* ) ++ *-*-cygwin* | *-*-msys* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; +- *-*-cygwin* ) ++ *-*-cygwin* | *-*-msys* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + +diff -Naur libtool-2.4.2.418-orig/m4/ltdl.m4 libtool-2.4.2.418/m4/ltdl.m4 +--- libtool-2.4.2.418-orig/m4/ltdl.m4 2013-10-26 03:37:46.000000000 +0400 ++++ libtool-2.4.2.418/m4/ltdl.m4 2014-09-02 10:19:58.102800000 +0400 +@@ -706,7 +706,7 @@ + beos*) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la" + ;; +-cygwin* | mingw* | pw32*) ++cygwin* | msys* | mingw* | pw32*) + AC_CHECK_DECLS([cygwin_conv_path], [], [], [[#include <sys/cygwin.h>]]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la" + ;; + +diff -Naur libtool-2.4.2.418-orig/m4/ltoptions.m4 libtool-2.4.2.418/m4/ltoptions.m4 +--- libtool-2.4.2.418-orig/m4/ltoptions.m4 2013-10-26 03:37:46.000000000 +0400 ++++ libtool-2.4.2.418/m4/ltoptions.m4 2014-09-02 10:20:19.069200000 +0400 +@@ -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 libtool-2.4.2.418-orig/tests/bindir.at libtool-2.4.2.418/tests/bindir.at +--- libtool-2.4.2.418-orig/tests/bindir.at 2013-01-26 08:19:10.000000000 +0400 ++++ libtool-2.4.2.418/tests/bindir.at 2014-09-02 10:21:21.999600000 +0400 +@@ -65,7 +65,7 @@ + + bindirneeded=: + case $host_os in +- cygwin*|mingw*|cegcc*) ++ cygwin*|msys*|mingw*|cegcc*) + ;; + *) + bindirneeded=false +@@ -174,7 +174,7 @@ + + bindirneeded=: + case $host_os in +- cygwin*|mingw*|cegcc*) ++ cygwin*|msys*|mingw*|cegcc*) + ;; + *) + bindirneeded=false + +diff -Naur libtool-2.4.2.418-orig/tests/lt_dladvise.at libtool-2.4.2.418/tests/lt_dladvise.at +--- libtool-2.4.2.418-orig/tests/lt_dladvise.at 2013-01-01 21:36:01.000000000 +0400 ++++ libtool-2.4.2.418/tests/lt_dladvise.at 2014-09-02 10:20:51.298800000 +0400 +@@ -332,7 +332,7 @@ + $LIBTOOL --features | grep 'enable shared libraries' >/dev/null && have_shared=: + + case $host_os,$have_shared in +-cygwin* | mingw* | cegcc* | *,false) ++cygwin* | msys* | mingw* | cegcc* | *,false) + # These hosts do not support linking without -no-undefined + CPPFLAGS="$CPPFLAGS -DHAVE_UNDEFINED_SYMBOLS=0" + ;; diff --git a/contrib/fixes-libtool/0010-libtool-2.4.2-include-process-h.patch b/contrib/fixes-libtool/0010-libtool-2.4.2-include-process-h.patch @@ -0,0 +1,24 @@ +diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in +index 0418007..91276c2 100644 +--- a/build-aux/ltmain.in ++++ b/build-aux/ltmain.in +@@ -4163,6 +4163,7 @@ + # include <unistd.h> + # include <stdint.h> + # ifdef __CYGWIN__ ++# include <process.h> + # include <io.h> + # endif + #endif +diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh +index 0418007..91276c2 100644 +--- a/build-aux/ltmain.sh ++++ b/build-aux/ltmain.sh +@@ -4163,6 +4163,7 @@ + # include <unistd.h> + # include <stdint.h> + # ifdef __CYGWIN__ ++# include <process.h> + # include <io.h> + # endif + #endif diff --git a/contrib/autotools-patches/0011-Pick-up-clang_rt-static-archives-compiler-internal-l.patch b/contrib/fixes-libtool/0011-Pick-up-clang_rt-static-archives-compiler-internal-l.patch diff --git a/contrib/fixes-libtool/0012-Prefer-response-files-over-linker-scripts-for-mingw-.patch b/contrib/fixes-libtool/0012-Prefer-response-files-over-linker-scripts-for-mingw-.patch @@ -0,0 +1,83 @@ +From ec15841963ca3aab3bc88fb0932c014337284bfc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin@martin.st> +Date: Wed, 10 Oct 2018 10:47:21 +0300 +Subject: [PATCH 2/2] Prefer response files over linker scripts for mingw tools + +The GCC/binutils tools support response files just fine, while +lld (impersonating GNU ld) only supports response files, not +linker scripts. Using a linker script as input just to pass a +list of files is overkill for cases when a response file is enough. +--- + build-aux/ltmain.in | 28 ++++++++++++++-------------- + m4/libtool.m4 | 2 ++ + 2 files changed, 16 insertions(+), 14 deletions(-) + +diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in +index e2fb263..db5d590 100644 +--- a/build-aux/ltmain.in ++++ b/build-aux/ltmain.in +@@ -7932,20 +7932,7 @@ EOF + last_robj= + k=1 + +- if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then +- output=$output_objdir/$output_la.lnkscript +- func_verbose "creating GNU ld script: $output" +- echo 'INPUT (' > $output +- for obj in $save_libobjs +- do +- func_to_tool_file "$obj" +- $ECHO "$func_to_tool_file_result" >> $output +- done +- echo ')' >> $output +- func_append delfiles " $output" +- func_to_tool_file "$output" +- output=$func_to_tool_file_result +- elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then ++ if test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then + output=$output_objdir/$output_la.lnk + func_verbose "creating linker input file list: $output" + : > $output +@@ -7964,6 +7951,19 @@ EOF + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" ++ elif test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then ++ output=$output_objdir/$output_la.lnkscript ++ func_verbose "creating GNU ld script: $output" ++ echo 'INPUT (' > $output ++ for obj in $save_libobjs ++ do ++ func_to_tool_file "$obj" ++ $ECHO "$func_to_tool_file_result" >> $output ++ done ++ echo ')' >> $output ++ func_append delfiles " $output" ++ func_to_tool_file "$output" ++ output=$func_to_tool_file_result + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." +diff --git a/m4/libtool.m4 b/m4/libtool.m4 +index d9322d0..9046a84 100644 +--- a/m4/libtool.m4 ++++ b/m4/libtool.m4 +@@ -5130,6 +5130,7 @@ _LT_EOF + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ++ _LT_TAGVAR(file_list_spec, $1)='@' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +@@ -6706,6 +6707,7 @@ if test yes != "$_lt_caught_CXX_error"; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ _LT_TAGVAR(file_list_spec, $1)='@' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +-- +2.7.4 + diff --git a/contrib/fixes-libtool/0013-Allow-statically-linking-compiler-support-libraries-.patch b/contrib/fixes-libtool/0013-Allow-statically-linking-compiler-support-libraries-.patch @@ -0,0 +1,38 @@ +From b9f77cae8cfbe850e58cac686fcb4d246b5bfc51 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin@martin.st> +Date: Mon, 19 Aug 2019 13:34:51 +0300 +Subject: [PATCH] Allow statically linking compiler support libraries when + linking a library + +For cases with deplibs_check_method="file_magic ..." (as it is for mingw), +there were previously no way that a static library could be accepted +here. +--- + build-aux/ltmain.in | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in +index e2fb2633..db4d775c 100644 +--- a/build-aux/ltmain.in ++++ b/build-aux/ltmain.in +@@ -5870,8 +5870,15 @@ func_mode_link () + fi + case $linkmode in + lib) +- # Linking convenience modules into shared libraries is allowed, +- # but linking other static libraries is non-portable. ++ # Linking convenience modules and compiler provided static libraries ++ # into shared libraries is allowed, but linking other static ++ # libraries is non-portable. ++ case $deplib in ++ */libgcc*.$libext | */libclang_rt*.$libext) ++ deplibs="$deplib $deplibs" ++ continue ++ ;; ++ esac + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) +-- +2.17.1 + diff --git a/contrib/fixes-libtool/0014-Support-llvm-objdump-f-output.patch b/contrib/fixes-libtool/0014-Support-llvm-objdump-f-output.patch @@ -0,0 +1,39 @@ +From 03dabb6a70847761e65572a2a7b770a3b1b9f123 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mateusz=20Miku=C5=82a?= <mati865@gmail.com> +Date: Mon, 12 Apr 2021 23:44:10 +0200 +Subject: [PATCH] Support llvm-objdump -f output + +--- + build-aux/ltmain.in | 2 +- + m4/libtool.m4 | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in +index a9f070a..4a434cc 100644 +--- a/build-aux/ltmain.in ++++ b/build-aux/ltmain.in +@@ -3019,7 +3019,7 @@ func_win32_libid () + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | +- $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then ++ $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64|coff-arm|coff-arm64|coff-i386|coff-x86-64)' >/dev/null; then + case $nm_interface in + "MS dumpbin") + if func_cygming_ms_implib_p "$1" || +diff --git a/m4/libtool.m4 b/m4/libtool.m4 +index 21a7d60..594be9c 100644 +--- a/m4/libtool.m4 ++++ b/m4/libtool.m4 +@@ -3473,7 +3473,7 @@ mingw* | pw32*) + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. +- lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' ++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64|coff-arm|coff-arm64|coff-i386|coff-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; +-- +2.31.1 + diff --git a/contrib/fixes-libtool/apply-all.sh b/contrib/fixes-libtool/apply-all.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +# +# This file applies optional libtool patches mainly for better MSys2 compatibility, +# especially for MSys2/Clang{64,32} toolchains. +# It's a pity that these patches haven't been sent upstream. +# +# Based on Debian SID baseline files as of April 2023. +# + +patchesdir=$(dirname $BASH_SOURCE) || exit 2 +test -n "$patchesdir" || exit 2 +cd "$patchesdir" || exit 2 +patchesdir=$(pwd) || exit 2 + +patches=( + 0003-Pass-various-runtime-library-flags-to-GCC.mingw.mod.patch + 0006-Fix-strict-ansi-vs-posix.patch + 0009-libtool-2.4.2.418-msysize.patch + 0010-libtool-2.4.2-include-process-h.patch + 0011-Pick-up-clang_rt-static-archives-compiler-internal-l.patch + 0012-Prefer-response-files-over-linker-scripts-for-mingw-.patch + 0013-Allow-statically-linking-compiler-support-libraries-.patch + 0014-Support-llvm-objdump-f-output.patch +) + +failed=( ) + +cd "${patchesdir}/../.." || exit 1 + +patch_params="-Nf -p1 --no-backup-if-mismatch -r - --read-only=fail" + +for patch in ${patches[@]}; do + patchfile="${patchesdir}/${patch}" + # Load patch into memory for simplicity + # Patches should not be very large + if grep -Eq -e '^--- .*\/ltmain\.in(\.orig)?([[:space:]]|$)' "$patchfile" && grep -Eq -e '^--- .*\/ltmain\.sh(\.orig)?([[:space:]]|$)' "$patchfile" + then + patch_data=$(awk '/^diff .*\/ltmain\.in(\.orig)?$/||(/^--- / && $2 ~ /\/ltmain\.in(\.orig)?$/){h=1;s=1;next}/^-- ?$/{h=0;s=0}/^[^-+@ ]/{h||s=0}/^\+\+\+ /{h=0}!s' "$patchfile") || exit 2 + else + patch_data=$(cat "$patchfile") || exit 2 + fi + patch_data=$(echo "$patch_data" | sed -E -e '/^(diff|---|\+\+\+) / s|/ltmain\.in|/ltmain.sh|g' -) || exit 2 + patch_data=$(echo "$patch_data" | awk '(/^diff / && !/.*\/(ltmain\.sh|config\.guess|libtool\.m4|ltoptions\.m4)$/)||(/^--- / && $2 !~ /\/(ltmain\.sh|config\.guess|libtool\.m4|ltoptions\.m4)(\.orig)?$/){h=1;s=1;next}/^-- ?$/{h=0;s=0}/^[^-+@ ]/{h||s=0}/^\+\+\+ /{h=0}!s' -) || exit 2 + echo "*** Applying $patch..." + if echo "$patch_data" | patch $patch_params -i - + then + echo "** $patch successfully applied." + else + echo "** $patch failed." + failed+=("$patch") + fi + unset patch_data +done + +echo '' + +if [[ -n "${failed[@]}" ]]; then + printf '* Failed patch: %s\n' "${failed[@]}" >&2 + exit 2 +else + echo "* All patches have been successfully applied." +fi + +exit 0