Instead of forcing -fnative-struct into CFLAGS when using gcc for Win32,
authorTor Lillqvist <tml@iki.fi>
Sat, 28 Sep 2002 23:52:52 +0000 (23:52 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Sat, 28 Sep 2002 23:52:52 +0000 (23:52 +0000)
2002-09-29  Tor Lillqvist  <tml@iki.fi>

* configure.in: Instead of forcing -fnative-struct into CFLAGS
when using gcc for Win32, check for gcc version 3.x which uses
-mms-bitfields instead. Also check if either of these switches is
actually available at all, and warn if not. Thanks to Soren
Andersen for the inspiration.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
configure.in

index 9496b01..25b33d4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2002-09-29  Tor Lillqvist  <tml@iki.fi>
 
+       * configure.in: Instead of forcing -fnative-struct into CFLAGS
+       when using gcc for Win32, check for gcc version 3.x which uses
+       -mms-bitfields instead. Also check if either of these switches is
+       actually available at all, and warn if not. Thanks to Soren
+       Andersen for the inspiration.
+
        * HACKING: Say we require autoconf 2.52 as that is what
        configure.in does.
 
index 9496b01..25b33d4 100644 (file)
@@ -1,5 +1,11 @@
 2002-09-29  Tor Lillqvist  <tml@iki.fi>
 
+       * configure.in: Instead of forcing -fnative-struct into CFLAGS
+       when using gcc for Win32, check for gcc version 3.x which uses
+       -mms-bitfields instead. Also check if either of these switches is
+       actually available at all, and warn if not. Thanks to Soren
+       Andersen for the inspiration.
+
        * HACKING: Say we require autoconf 2.52 as that is what
        configure.in does.
 
index 9496b01..25b33d4 100644 (file)
@@ -1,5 +1,11 @@
 2002-09-29  Tor Lillqvist  <tml@iki.fi>
 
+       * configure.in: Instead of forcing -fnative-struct into CFLAGS
+       when using gcc for Win32, check for gcc version 3.x which uses
+       -mms-bitfields instead. Also check if either of these switches is
+       actually available at all, and warn if not. Thanks to Soren
+       Andersen for the inspiration.
+
        * HACKING: Say we require autoconf 2.52 as that is what
        configure.in does.
 
index 9496b01..25b33d4 100644 (file)
@@ -1,5 +1,11 @@
 2002-09-29  Tor Lillqvist  <tml@iki.fi>
 
+       * configure.in: Instead of forcing -fnative-struct into CFLAGS
+       when using gcc for Win32, check for gcc version 3.x which uses
+       -mms-bitfields instead. Also check if either of these switches is
+       actually available at all, and warn if not. Thanks to Soren
+       Andersen for the inspiration.
+
        * HACKING: Say we require autoconf 2.52 as that is what
        configure.in does.
 
index 9496b01..25b33d4 100644 (file)
@@ -1,5 +1,11 @@
 2002-09-29  Tor Lillqvist  <tml@iki.fi>
 
+       * configure.in: Instead of forcing -fnative-struct into CFLAGS
+       when using gcc for Win32, check for gcc version 3.x which uses
+       -mms-bitfields instead. Also check if either of these switches is
+       actually available at all, and warn if not. Thanks to Soren
+       Andersen for the inspiration.
+
        * HACKING: Say we require autoconf 2.52 as that is what
        configure.in does.
 
index 9496b01..25b33d4 100644 (file)
@@ -1,5 +1,11 @@
 2002-09-29  Tor Lillqvist  <tml@iki.fi>
 
+       * configure.in: Instead of forcing -fnative-struct into CFLAGS
+       when using gcc for Win32, check for gcc version 3.x which uses
+       -mms-bitfields instead. Also check if either of these switches is
+       actually available at all, and warn if not. Thanks to Soren
+       Andersen for the inspiration.
+
        * HACKING: Say we require autoconf 2.52 as that is what
        configure.in does.
 
index 9496b01..25b33d4 100644 (file)
@@ -1,5 +1,11 @@
 2002-09-29  Tor Lillqvist  <tml@iki.fi>
 
+       * configure.in: Instead of forcing -fnative-struct into CFLAGS
+       when using gcc for Win32, check for gcc version 3.x which uses
+       -mms-bitfields instead. Also check if either of these switches is
+       actually available at all, and warn if not. Thanks to Soren
+       Andersen for the inspiration.
+
        * HACKING: Say we require autoconf 2.52 as that is what
        configure.in does.
 
index 1ed8d1e..8594184 100644 (file)
@@ -227,13 +227,38 @@ else
   fi
 fi
 
-# Ensure -fnative-struct is used when compiling for Win32
-if test "x$glib_native_win32" = "xyes"; then
-  if test "x$GCC" = "xyes"; then
-    case " $CFLAGS " in
-    *[[\ \     ]]-fnative-struct[[\ \  ]]*) ;;
-    *) CFLAGS="$CFLAGS -fnative-struct" ;;
+# Ensure MSVC-compatible struct packing convention is used when
+# compiling for Win32 with gcc.
+# What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while
+# gcc2 uses "-fnative-struct".
+if test x"$glib_native_win32" = xyes; then
+  if test x"$GCC" = xyes; then
+    msnative_struct=''
+    AC_MSG_CHECKING([how to get MSVC-compatible struct packing])
+    if test -z "$ac_cv_prog_CC"; then
+      our_gcc="$CC"
+    else
+      our_gcc="$ac_cv_prog_CC"
+    fi
+    case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in
+      2.)
+       if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then
+         msnative_struct='-fnative-struct'
+       fi
+       ;;
+      *)
+       if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then
+         msnative_struct='-mms-bitfields'
+       fi
+       ;;
     esac
+    if test x"$msnative_struct" = x ; then
+      AC_MSG_RESULT([no way])
+      AC_MSG_WARN([produced libraries might be incompatible with MSVC-compiled code])
+    else
+      CFLAGS="$CFLAGS $msnative_struct"
+      AC_MSG_RESULT([${msnative_struct}])
+    fi
   fi
 fi