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
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
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 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