Open MPI logo

Hardware Locality Development Mailing List Archives

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

Subject: Re: [hwloc-devel] 1.3.2rc1 has escaped
From: Paul H. Hargrove (PHHargrove_at_[hidden])
Date: 2012-02-08 17:08:59


On 2/8/2012 1:10 PM, Paul H. Hargrove wrote:
>
>
> On 2/8/2012 8:58 AM, Jeff Squyres wrote:
>> * Detect when a compiler such as xlc may not report compile errors
>> properly, causing some configure checks to be wrong. Thanks to
>> Paul H. Hargrove for reporting the problem and providing a patch.
>
> Looks like I botched this one!
>
> I have added two Linux/ppc64 machines the xlc-7.0, xlc-8.0 and xlc-9.0
> to my testing.
> These are NOT running on the odd virtual node that caused assertion
> failures when testing xlc-11.1.

ARGH!!!

I've applied the patches I included, and tested on the xlc-11.1 system
where auto tools are new enough.
Everything looked fine.

Now I've had a chance to retest earlier xlc (8 and 9, which are on 2
different machines), with the explict CFLAGS=-qhalt=e.
The result was NOT good.

It seems that xlc dislikes some wchar constants (see below).
In a build w/ default CFLAGS they produce an "(E)" level message, but
compilation continues to completion.
With the recommended CFLAGS=-qhalt=e these become fatal:
> CC lstopo-lstopo-text.o
> "/home/hargrove/OMPI/hwloc-1.3.2rc1-linux-ppc64-xlc-9.0/hwloc-1.3.2rc1/include/hwloc.h",
> line 1203.34: 1506-1385 (W) The attribute "pure" is not a valid type
> attribute.
> "/home/hargrove/OMPI/hwloc-1.3.2rc1-linux-ppc64-xlc-9.0//hwloc-1.3.2rc1/utils/lstopo-text.c",
> line 450.12: 1506-077 (E) The wchar_t value 0x250c is not valid.
> "/home/hargrove/OMPI/hwloc-1.3.2rc1-linux-ppc64-xlc-9.0//hwloc-1.3.2rc1/utils/lstopo-text.c",
> line 451.12: 1506-077 (E) The wchar_t value 0x2510 is not valid.
> "/home/hargrove/OMPI/hwloc-1.3.2rc1-linux-ppc64-xlc-9.0//hwloc-1.3.2rc1/utils/lstopo-text.c",
> line 452.12: 1506-077 (E) The wchar_t value 0x2514 is not valid.
[followed by another error for each case in the switch statement].

So, now I am not sure what to recommend. Options include:
+ Don't worry about old xlc (which OMPI doesn't support since they can't
build the opal atomics).
+ Rig things to use -qhalt=e ONLY for configure, but not for make?
+ Punt on 1.3 and revisit later

By the way:
xlc-11.1 on Linux doesn't make these complaints on lstopo-lstopo-text.
Nor does xlc-6.0 on MacOS-10.3 (honest, I am not making this up).
[And, YES, both platforms define HAVE_PUTWC]

-Paul

-- 
Paul H. Hargrove                          PHHargrove_at_[hidden]
Future Technologies Group
HPC Research Department                   Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900