bug-autoconf
[Top][All Lists]
Advanced

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

[GNU Autoconf 2.69] testsuite: 307 308 failed


From: Eric Bavier
Subject: [GNU Autoconf 2.69] testsuite: 307 308 failed
Date: Tue, 08 Apr 2014 16:53:10 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux)

I've attached the testlog from `make check` for autoconf-2.69 as
compiled on a Cray XC system.  It seems that in test 307 the Cray
Fortran compiler is incorrectly recognized as the GNU Fortran 77
compiler.

I believe the reason for this is that the Cray compilers, for better or
for worse, define the __GNUC__ macro internally, and this seems to be
the only check that is performed in _AC_LANG_COMPILER_GNU (lang.m4:345).

Unfortunately, it looks like the Cray compilers also define
__GNUC_MINOR__, __GNUC_PATCHLEVEL__, and __GFORTRAN__, so those can't be
used to distinguish the Cray compiler either.  The only thing I could
think to distinguish the Cray C/C++ and Cray Fortran compilers from the
GNU compilers is to check that some other cray-specific macros are not
defined.  The Cray C/C++ compilers define _CRAYC and the Cray Fortran
compiler defines _CRAYFTN.  It looks like __COUNTER__ is only defined by
the GNU compilers though, so maybe that would be enough of a check (I've
attached a patch that makes that change).

Any feedback would be welcome.

-- 
`~Eric

Attachment: testsuite.log
Description: Binary data

--- lib/autoconf/lang.m4~       2012-01-21 07:46:39.000000000 -0600
+++ lib/autoconf/lang.m4        2014-04-08 16:48:16.000259000 -0500
@@ -345,7 +345,7 @@
 m4_define([_AC_LANG_COMPILER_GNU],
 [AC_CACHE_CHECK([whether we are using the GNU _AC_LANG compiler],
                [ac_cv_[]_AC_LANG_ABBREV[]_compiler_gnu],
-[_AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[#ifndef __GNUC__
+[_AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[#if !(defined(__GNUC__) && 
defined(__COUNTER__))
        choke me
 #endif
 ]])],

reply via email to

[Prev in Thread] Current Thread [Next in Thread]