SDL_mixer: configure: check for -mno-cygwin switch before enabling it

From 755e0b08f6e185ae2623f98c9117a6f7c575e741 Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Mon, 8 Mar 2021 23:40:40 +0300
Subject: [PATCH] configure: check for -mno-cygwin switch before enabling it

Closes: https://github.com/libsdl-org/SDL_mixer/issues/143
---
 configure    | 32 ++++++++++++++++++++++++++++++--
 configure.ac | 14 ++++++++++++--
 2 files changed, 42 insertions(+), 4 deletions(-)

diff --git a/configure b/configure
index 987a0c5..5745dc2 100755
--- a/configure
+++ b/configure
@@ -11045,8 +11045,36 @@ CC="$lt_save_CC"
 case "$host" in
     *-*-cygwin*)
         # We build SDL on cygwin without the UNIX emulation layer
-        BASE_CFLAGS="-I/usr/include/mingw -mno-cygwin"
-        BASE_LDFLAGS="-mno-cygwin"
+        BASE_CFLAGS="-I/usr/include/mingw"
+        BASE_LDFLAGS=""
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GCC -mno-cygwin option" >&5
+$as_echo_n "checking for GCC -mno-cygwin option... " >&6; }
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$save_CFLAGS -mno-cygwin"
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  have_no_cygwin=yes
+else
+  have_no_cygwin=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_no_cygwin" >&5
+$as_echo "$have_no_cygwin" >&6; }
+        CFLAGS="$save_CFLAGS"
+        if test x$have_no_cygwin = xyes; then
+            BASE_CFLAGS="$BASE_CFLAGS -mno-cygwin"
+            BASE_LDFLAGS="-mno-cygwin"
+        fi
         ;;
     *)
         BASE_CFLAGS="-D_GNU_SOURCE=1"
diff --git a/configure.ac b/configure.ac
index 49b50f6..b5be494 100644
--- a/configure.ac
+++ b/configure.ac
@@ -54,8 +54,18 @@ dnl Set up the compiler and linker flags
 case "$host" in
     *-*-cygwin*)
         # We build SDL on cygwin without the UNIX emulation layer
-        BASE_CFLAGS="-I/usr/include/mingw -mno-cygwin"
-        BASE_LDFLAGS="-mno-cygwin"
+        BASE_CFLAGS="-I/usr/include/mingw"
+        BASE_LDFLAGS=""
+        AC_MSG_CHECKING(for GCC -mno-cygwin option)
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$save_CFLAGS -mno-cygwin"
+        AC_TRY_COMPILE([],[],[have_no_cygwin=yes],[have_no_cygwin=no])
+        AC_MSG_RESULT($have_no_cygwin)
+        CFLAGS="$save_CFLAGS"
+        if test x$have_no_cygwin = xyes; then
+            BASE_CFLAGS="$BASE_CFLAGS -mno-cygwin"
+            BASE_LDFLAGS="-mno-cygwin"
+        fi
         ;;
     *)
         BASE_CFLAGS="-D_GNU_SOURCE=1"