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