On 2/9/2012 2:07 PM, Jeff Squyres wrote:
On Feb 9, 2012, at 2:27 PM, Paul H. Hargrove wrote:

What you have for the "Make sure..." is wrong in the same way as the one that 
was in rc1.
The problem is that the AC_COMPILE_IFELSE code tests too-few and too-many args 
together.
Since xlc makes too many an error by default, we don't notice its MISbehavior 
when given too few.
So, one needs to split the too-many and too-few tests as I did in the patch I 
sent.
Ah.  I didn't change that section at all -- I just added the 
CFLAGS-amend-and-restore behavior.

Hmm.  Somehow I totally missed the patch you sent; I see it now (sent last 
night at 8:53pm US Eastern).

I'm not sure your patch was entirely right -- did you mean for it to ok if we 
fail the pass-too-many-args test?  hwloc_args_check_ok is really only checked 
as the result of the pass-too-few-args test.

I slightly reworked your patch to check to ensure that *both* of them pass -- 
how's this?

Sorry, I can't quite parse the diff and can't apply it at the moment (no ssh).
The intent is to FAIL the compiler if EITHER test were to pass.
So, I think your check for *both* is probably incorrect.

Perhaps this will clarify:
The *intent* was that we run 2 tests via AC_COMPILE_IFELSE().
One tries to pass too many arguments to a function.
The other tries to pass too few.
With an "acceptable" compiler BOTH must FAIL
So the commands-if-success portion of each AC_COMPILE_IFELSE set a variable (no need to increment). NOTE: the variable is set on SUCCESS of the AC_COMPILE_IFELSE, not on failure.
We then test if *either* set the variable.
Sort of a double-negative.

If that was still not clear, let me know and I'll take a look again when I can apply the patch.

-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