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"