Re: AC_PROG_CC_C_O doesn't work with VC++

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Harald,

On Mon, Oct 24, 2005 at 10:35:25AM +0200, Harald Dunkel wrote:
> It seems that this patch is still not in CVS. And since the
> suggested workaround doesn't workaround I am stuck :-(.

I apologize.  I have committed a patch which should fix your problem.
(Attached.)

A question: is there any reason to use  rm -f conftst2.*
instead of  rm -f conftst2.$ac_objext
Is there any C, Fortran, or F77 compiler which could create other
conftst2.* files if it receives  -o conftst2.$ac_objext ?

Have a nice day,
	Stepan
2005-10-24  Stepan Kasal  <kasal@xxxxxx>

	* lib/autoconf/c.m4 (AC_PROG_CC_C_O): Use conftst2.o instead of
	conftest.o, to see whether the compiler really obeys; rm the object
	file before and after the test and register it with ac_clean_files.
	* lib/autoconf/fortran.m4 (_AC_PROG_FC_C_O): Likewise.

Index: lib/autoconf/c.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/c.m4,v
retrieving revision 1.204
diff -u -r1.204 c.m4
--- lib/autoconf/c.m4	19 Oct 2005 22:35:52 -0000	1.204
+++ lib/autoconf/c.m4	24 Oct 2005 10:26:22 -0000
@@ -576,20 +576,24 @@
 		      sed 's/[[^a-zA-Z0-9_]]/_/g;s/^[[0-9]]/_/'`
 AC_CACHE_VAL(ac_cv_prog_cc_${ac_cc}_c_o,
 [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files conftst2.$ac_objext"
 # Make sure it works both with $CC and with simple cc.
 # We do the test twice because some compilers refuse to overwrite an
 # existing .o file with -o, though they will create one.
-ac_try='$CC -c conftest.$ac_ext -o conftest.$ac_objext >&AS_MESSAGE_LOG_FD'
+ac_try='$CC -c conftest.$ac_ext -o conftst2.$ac_objext >&AS_MESSAGE_LOG_FD'
+rm -f conftst2.$ac_objext
 if AC_TRY_EVAL(ac_try) &&
-   test -f conftest.$ac_objext && AC_TRY_EVAL(ac_try);
+   test -f conftst2.$ac_objext && AC_TRY_EVAL(ac_try);
 then
   eval ac_cv_prog_cc_${ac_cc}_c_o=yes
   if test "x$CC" != xcc; then
     # Test first that cc exists at all.
     if AC_TRY_COMMAND(cc -c conftest.$ac_ext >&AS_MESSAGE_LOG_FD); then
-      ac_try='cc -c conftest.$ac_ext -o conftest.$ac_objext >&AS_MESSAGE_LOG_FD'
+      ac_try='cc -c conftest.$ac_ext -o conftst2.$ac_objext >&AS_MESSAGE_LOG_FD'
+      rm -f conftst2.$ac_objext
       if AC_TRY_EVAL(ac_try) &&
-	 test -f conftest.$ac_objext && AC_TRY_EVAL(ac_try);
+	 test -f conftst2.$ac_objext && AC_TRY_EVAL(ac_try);
       then
 	# cc works too.
 	:
@@ -602,7 +606,8 @@
 else
   eval ac_cv_prog_cc_${ac_cc}_c_o=no
 fi
-rm -f conftest*
+rm -f conftest* conftst2.$ac_objext
+ac_clean_files=$ac_clean_files_save
 ])dnl
 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = yes"; then
   AC_MSG_RESULT([yes])
Index: lib/autoconf/fortran.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/fortran.m4,v
retrieving revision 1.195
diff -u -r1.195 fortran.m4
--- lib/autoconf/fortran.m4	10 Jul 2005 16:02:44 -0000	1.195
+++ lib/autoconf/fortran.m4	24 Oct 2005 10:26:23 -0000
@@ -459,17 +459,22 @@
 AC_CACHE_CHECK([whether $[]_AC_FC[] understands -c and -o together],
                [ac_cv_prog_[]_AC_LANG_ABBREV[]_c_o],
 [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files conftst2.$ac_objext"
 # We test twice because some compilers refuse to overwrite an existing
 # `.o' file with `-o', although they will create one.
-ac_try='$[]_AC_FC[] $[]_AC_LANG_PREFIX[]FLAGS -c conftest.$ac_ext -o conftest.$ac_objext >&AS_MESSAGE_LOG_FD'
+ac_try='$[]_AC_FC[] $[]_AC_LANG_PREFIX[]FLAGS -c conftest.$ac_ext -o conftst2.$ac_objext >&AS_MESSAGE_LOG_FD'
+rm -f conftst2.$ac_objext
 if AC_TRY_EVAL(ac_try) &&
-     test -f conftest.$ac_objext &&
+     test -f conftst2.$ac_objext &&
      AC_TRY_EVAL(ac_try); then
   ac_cv_prog_[]_AC_LANG_ABBREV[]_c_o=yes
 else
   ac_cv_prog_[]_AC_LANG_ABBREV[]_c_o=no
 fi
-rm -f conftest*])
+rm -f conftest* conftst2.$ac_objext
+ac_clean_files=$ac_clean_files_save
+])
 if test $ac_cv_prog_[]_AC_LANG_ABBREV[]_c_o = no; then
   AC_DEFINE([]_AC_FC[]_NO_MINUS_C_MINUS_O, 1,
             [Define to 1 if your Fortran compiler doesn't accept
_______________________________________________
Autoconf mailing list
Autoconf@xxxxxxx
http://lists.gnu.org/mailman/listinfo/autoconf

[Index of Archives]     [GCC Help]     [Kernel Discussion]     [RPM Discussion]     [Red Hat Development]     [Yosemite News]     [Linux USB]     [Samba]

  Powered by Linux