On 2/1/2012 3:12 PM, Paul H. Hargrove wrote:
[...]
This is WRONG.
The compiler has reported an error: "(E) Missing argument(s)" and yet exited with $? = 0

I am looking at xlc docs to see if there is some compiler flag to be set.

From "man xlc":
         -qhalt=<sev>
Stops the compiler after the first phase if the severity level of errors detected equals or exceeds the specified level, <sev>. The severity levels in increasing order
                of severity are:

                i = informational messages
                w = warning messages
                e = error messages (C only)
                s = severe error messages

                Default: -qhalt=s

Which explains why an "(E)" message was non-fatal (both at configure time AND at build time).

<rant>
Looking again at configure.ac I am not too surprised really.
In general my experience is that compilers don't consider too few or too many arguments to be fatal. This is behavior is perhaps a hold-over from pre-ANSI days when prototype and/or stdargs were seldom used. The result is that configure probes like the one for old-vs-new sched_setaffinity() are NOT reliable across compilers.
</rant>

With that out of the way, I am please to say that when configuring hwloc-1.3.1 with "CFLAGS=-qhalt=e" the correct variant of sched_setaffinity() is detected. This gets rid of the messages regarding sched_setaffinity() at build time, and the related test failures w/ SIGSEGV. (I still have my assetion failure in the linux-libnuma test, but we know that occurs w/ gcc as well).

I am not sure if one should fix this by:
a) Document the need for CFLAGS=-qhalt=e
b) Force "-qhalt=e" at configure time when CC=xlc
c) Find some other way to fix the configure probe

My vote is for "(b)", but I don't know if that fits with the ompi/hwloc philosophy.

-Paul

--
Paul H. Hargrove                          phhargr...@lbl.gov
Future Technologies Group
HPC Research Department                   Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900

Reply via email to