Hi, this fixes a bug when running configure scripts with compilers which generates object-files where the suffix is not the default ".o": _AC_OBJEXT uses AC_COMPILE_IFELSE, but AC_COMPILE_IFELSE contains this snippet of code [...] if AC_TRY_EVAL(ac_compile) && test -s conftest.$ac_objext; then [...] I.e., the AC_COMPILE_IFELSE macro depends on the value of $ac_objext (which defaults to .o before _AC_OBJEXT is called). This means compilers using .obj or .xcoff, for instance, will fail the "test -s" case, which makes AC_COMPILE_IFELSE fail, which in turn makes _AC_OBJEXT abort the configure script with an AC_MSG_ERROR. BTW, looking some more at the code, this looks like a hornet's nest of bugs. IMO, $ac_objext shouldn't have a default value at all, and AC_COMPILE_IFELSE should AC_REQUIRE the _AC_OBJEXT macro -- since the value of $ac_objext will not be correct until _AC_OBJEXT is called anyhow for compilers not using the .o suffix for object files. But this will in turn lead to other "dependency deadlock" problems, since AC_COMPILE_IFELSE is used to detect a working compiler, and a working compiler is needed by _AC_OBJEXT to detect the object extension suffix. In addition, it also seems to me (after a quick glance) that _AC_EXEEXT have some of the same problems; it calls AC_LINK_IFELSE, but AC_LINK_IFELSE depends on the value of $ac_exeext being correct. There's an ugly workaround for this in the _AC_EXEEXT macro -- the value of $ac_exeext is explicitly set to .exe if CYGWIN, MINGW32 or EMXOS2 is detected. As I said, a hornet's nest. Was anyone on the list aware of these bugs? Regards, Morten ========================================================= 2000-08-30 Morten Eriksen <[EMAIL PROTECTED]> * acspecific.m4: _AC_OBJEXT was using AC_COMPILE_IFELSE, but AC_COMPILE_IFELSE depends on the value of $ac_objext. This dependency deadlock is broken by making _AC_OBJEXT independent of AC_COMPILE_IFELSE.
Index: acspecific.m4 =================================================================== RCS file: /cvs/autoconf/acspecific.m4,v retrieving revision 1.293 diff -u -r1.293 acspecific.m4 --- acspecific.m4 2000/08/04 09:21:52 1.293 +++ acspecific.m4 2000/08/30 14:05:10 @@ -1586,16 +1586,22 @@ # determined by ac_objext. define([_AC_OBJEXT], [AC_CACHE_CHECK([for object suffix], ac_cv_objext, -[AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], - [for ac_file in conftest.*; do - case $ac_file in - *.$ac_ext) ;; - *) ac_cv_objext=`echo $ac_file | sed s/conftest.//` ;; - esac - done], - [AC_MSG_ERROR([cannot compile])])]) +[AC_LANG_CONFTEST([AC_LANG_PROGRAM()]) + if AC_TRY_EVAL(ac_compile); then + for ac_file in conftest.*; do + case $ac_file in + *.$ac_ext) ;; + *) ac_cv_objext=`echo $ac_file | sed s/conftest.//` ;; + esac + done + else + rm -f conftest.$ac_ext + AC_MSG_ERROR([cannot compile]) + fi +]) AC_SUBST(OBJEXT, $ac_cv_objext)dnl ac_objext=$ac_cv_objext +rm -f conftest.$ac_objext conftest.$ac_ext ])# _AC_OBJEXT