Open MPI logo

Hardware Locality Users' Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Hardware Locality Users mailing list

Subject: Re: [hwloc-users] hwloc-1.6.1rc2 Build failure with Cray compiler
From: Jeff Hammond (jhammond_at_[hidden])
Date: 2013-01-17 14:40:13


Well then, this is most certainly not a Cray bug :-) The compiler is
doing exactly what you asked it to do.

I would configure hwloc without this flag and assume that this
resolves the issue.

Jeff

On Thu, Jan 17, 2013 at 1:27 PM, Erik Schnetter <schnetter_at_[hidden]> wrote:
> I realise I did not mention the flags I used when configuring hwloc. I am
> using
>
> -g -h gnu -O3
>
> which explicitly asks to recognise GNU extensions. (I need to use -h gnu to
> compile certain other code.) This would explain why __GNUC__ is defined...
> Apologies for omitting this earlier.
>
> -erik
>
>
>
> On Thu, Jan 17, 2013 at 2:21 PM, Jeff Hammond <jhammond_at_[hidden]> wrote:
>>
>> I was not able to reproduce the behavior described by Erik on the
>> NERSC Cray XE6, which is to say, Cray C does not claim to be GCC
>> there. As I can't verify the problem, I can't report it.
>>
>> I have no experience with Cray bug fix latency but I suspect this
>> needs to be worked-around (I refuse to call it a fix since there is no
>> problem in hwloc) because Cray won't backport whatever fix they
>> implement to all their compilers that users might come across.
>>
>> Jeff
>>
>> On Thu, Jan 17, 2013 at 1:15 PM, Erik Schnetter <schnetter_at_[hidden]>
>> wrote:
>> > I have no idea how fast Cray acts in such a case.
>> >
>> > -erik
>> >
>> >
>> > On Thu, Jan 17, 2013 at 2:05 PM, Brice Goglin <brice.goglin_at_[hidden]>
>> > wrote:
>> >>
>> >> Does Cray fix such bugs quickly usually? If so, no need to change
>> >> hwloc.
>> >> If not, I'll need somebody to test the change on other cray platforms
>> >> and
>> >> compiler versions.
>> >> Brice
>> >>
>> >>
>> >>
>> >> Jeff Hammond <jhammond_at_[hidden]> a écrit :
>> >>>
>> >>> 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 <schnetter_at_[hidden]>
>> >>> 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 c!
>> >>>> ompiler
>> >>>> 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 <schnetter_at_[hidden]>
>> >>>> http://www.perimeterinstitute.ca/personal/eschnetter/
>> >>>>
>> >>>>
>> >>>> ________________________________
>> >>>>
>> >>>> hwloc-users mailing list
>> >>>> hwloc-users_at_[hidden]
>> >>>> http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-users
>> >>>
>> >>>
>> >>>
>> >>
>> >> _______________________________________________
>> >>
>> >> hwloc-users mailing list
>> >> hwloc-users_at_[hidden]
>> >> http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-users
>> >
>> >
>> >
>> >
>> > --
>> > Erik Schnetter <schnetter_at_[hidden]>
>> > http://www.perimeterinstitute.ca/personal/eschnetter/
>>
>>
>>
>> --
>> Jeff Hammond
>> Argonne Leadership Computing Facility
>> University of Chicago Computation Institute
>> jhammond_at_[hidden] / (630) 252-5381
>> http://www.linkedin.com/in/jeffhammond
>> https://wiki.alcf.anl.gov/parts/index.php/User:Jhammond
>
>
>
>
> --
> Erik Schnetter <schnetter_at_[hidden]>
> http://www.perimeterinstitute.ca/personal/eschnetter/

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