According to Paolo Bonzini on 11/1/2008 11:54 AM:
> I must say I don't like it much, unless it gives a net improvement of at
> least 2-3% on coreutils, say.  But I disagree on the math: doesn't it
> save only one cat *but also* one rm?

It takes two cat's per AC_LANG_CONFTEST to build conftest.$ac_ext, so by
building it once instead of twice we save two processes.  But each
AC_COMPILE_IFELSE does an rm of all built files, and if AC_LANG_CONFTEST
was not run, we must add an extra 'rm -f conftest.$ac_ext' after the
compile test, explaining the added rm.

For reference, here's the difference pre- and post-patch to the configure
file.

--- configure.gold      2008-11-01 10:10:52.639500000 -0600
+++ configure   2008-11-01 11:59:59.827000000 -0600
@@ -2294,36 +2294,30 @@
 int
 main ()
 {
-if (sizeof ($2))
-        return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_func_c_try_compile "$LINENO"; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h - <<_ACEOF >>conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-if (sizeof (($2)))
-           return 0;
+#ifndef ac_type_check2
+  if (sizeof ($2))
+    return 0;
+#else
+  if (sizeof (($2)))
+    return 0;
+#endif
   ;
   return 0;
 }
 _ACEOF
-if ac_func_c_try_compile "$LINENO"; then
+  if ac_func_c_try_compile "$LINENO"; then
+  ac_save_CFLAGS=$CFLAGS
+     CFLAGS="$CFLAGS -Dac_type_check2"
+     if ac_func_c_try_compile "$LINENO"; then
   :
 else
   eval "$3=yes"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext
+     CFLAGS=$ac_save_C
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext
+  rm -f conftest.$ac_ext
 fi
 eval ac_res=\$$3
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5


-- 
Don't work too hard, make some time for fun as well!

Eric Blake             [EMAIL PROTECTED]


Reply via email to