This is a bug in the Cray compiler.  They cannot and should not set
the __GNUC__ flag unless they are fully compatible with GCC.  There
are many ways to define "fully compatible" but at a minimum, code that
compiles with GCC needs to compile with any compiler that elects to
define __GNUC__.  It is prudent to impose a higher standard in some
cases but that's not pertinent to this discussion.

Lots of vendor compilers pretend to be __GNUC__ for any number of
reasons.  I believe that they are all wrong for doing it.

Regarding this specific issue, there is nothing wrong with hwloc and I
don't know why anyone should bother trying to fix Cray's problem, but
I suspect that pragmatism will prevail, as it appears to have in the
case of Boost 
(http://www.boost.org/doc/libs/1_52_0/boost/config/select_platform_config.hpp).

I'll reproduce this locally and contact Cray directly about fixing
this on their end.

Best,

Jeff

On Thu, Jan 17, 2013 at 12:19 PM, Erik Schnetter <schnet...@gmail.com> wrote:
> hwloc-1.6.1rc2 fails to build with the Cray compiler
>
> Cray C : Version 8.1.2  Thu Jan 17, 2013  12:18:54
>
> The error message is
>
>   CC       bitmap.lo
> CC-147 craycc: ERROR
>   Declaration is incompatible with "int ffsl(long)" (declared at line 526 of
>           "/opt/cray/xe-sysroot/4.1.20/usr/include/string.h").
>
> (Yes, there is no line number with the error message.)
>
> This seems to be caused by the fact that the Cray compiler sets __GNUC__,
> but is not quite compatible. A work-around is to change line 56 of
> include/private/misc.h from
>
> #elif defined(__GNUC__)
>
> to
>
> #elif defined(__GNUC__) && !defined(_CRAYC)
>
> -erik
>
> --
> Erik Schnetter <schnet...@gmail.com>
> http://www.perimeterinstitute.ca/personal/eschnetter/
>
> _______________________________________________
> hwloc-users mailing list
> hwloc-us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-users



-- 
Jeff Hammond
Argonne Leadership Computing Facility
University of Chicago Computation Institute
jhamm...@alcf.anl.gov / (630) 252-5381
http://www.linkedin.com/in/jeffhammond
https://wiki.alcf.anl.gov/parts/index.php/User:Jhammond

Reply via email to