From bf448f42229a38aedcc8e77467ae44c9b0a8c767 Mon Sep 17 00:00:00 2001 From: panne Date: Mon, 1 Apr 2002 15:32:46 +0000 Subject: [PATCH] [project @ 2002-04-01 15:32:46 by panne] Sigbjorn's last optimization (checking for -mno-cygwin only for mingw32 targets) kicked out -O from the default SRC_CC_OPTS. Apart from a minor performance hit for some parts of GHC, it yields a GHCi which can't load HSbase_cbits.o because `lstat' is unknown, at least on SuSE 7.3. A little investigation showed the rather arcane reason: lstat and friends are inline functions and therefore not in libc.so, only in its static counterpart. Normally this is not a problem at all, but the CPP INLINE trickery in fptools/libraries/base/cbits/PrelIOUtils.c manages to get a reference to lstat into PrelIOUtils.o if -O is not given. %-} A similar problem exists for fstat, too. Simple solution: Re-add -O to SRC_CC_OPTS, simplifying configure.in a bit on the way. --- configure.in | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/configure.in b/configure.in index 26e2b0e..f61558e 100644 --- a/configure.in +++ b/configure.in @@ -556,18 +556,16 @@ FPTOOLS_HAVE_GCC dnl ** figure out how to invoke cpp directly (gcc -E is no good) AC_PROG_CPP -dnl ** does the C compiler support the following options? -case $TargetOS_CPP in -mingw32) - FPTOOLS_CC_FLAG(-mno-cygwin,CC_SUPPORTS_MNO_CYGWIN) - - EXTRA_CC_OPTS="$CC_SUPPORTS_MNO_CYGWIN" - SRC_CC_OPTS="-O $EXTRA_CC_OPTS" - CPPFLAGS="$EXTRA_CC_OPTS $CPPFLAGS" - AC_SUBST(SRC_CC_OPTS) - ;; -*) ;; -esac +dnl ** Without optimization some INLINE trickery fails for GHCi +SRC_CC_OPTS="-O" + +dnl ** Try to add -mno-cygwin to the C compiler options for mingw32 targets +if test x"$TargetOS_CPP" = x"mingw32"; then + FPTOOLS_CC_FLAG(-mno-cygwin,CC_SUPPORTS_MNO_CYGWIN) + SRC_CC_OPTS="$CC_SUPPORTS_MNO_CYGWIN $SRC_CC_OPTS" + CPPFLAGS="$CC_SUPPORTS_MNO_CYGWIN $CPPFLAGS" +fi +AC_SUBST(SRC_CC_OPTS) dnl ** figure out how to do context diffs FPTOOLS_PROG_DIFF -- 1.7.10.4