Instead of forcing -fnative-struct into CFLAGS when using gcc for Win32,

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.
This commit is contained in:
Tor Lillqvist 2002-09-28 23:52:52 +00:00 committed by Tor Lillqvist
parent a6d23a4a54
commit dd373b4831
8 changed files with 73 additions and 6 deletions

View 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.

View 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.

View 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.

View 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.

View 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.

View 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.

View 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.

View 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