On Jan 18, 2014, at 10:43 AM, Jed Brown <[email protected]> wrote:
> Barry Smith <[email protected]> writes:
>> Do people really set some of the above and not set the -O%d one at the
>> same time?
>
> I don't know. Sometimes the MPI wrapper adds the -O flag itself. The
> user might know that and thus not bother adding it themselves. I think
> it would be surprising for some special flags to cause such changes in
> behavior. I don't have a strong opinion on this point, but I think we
> should do something better than we have now.
Summary
The reason for the current model is that in the original plan
—with-debugging=0 would providing good compiler optimization flags (for each
system) without the user having to set them; if the user set them via COPTFLAGS
then we did set them ourselves.
Observations
1) The “standard” for passing optimization flags to ./configure is
CFLAGS=“-O3 crap” we don’t support this and this confuses users
2) If we followed the standard and the user only set non-optimization flags
with CFLAGS we would not turn on optimization when user might expect it (does
this ever happen?)
3) We provide a different, “better" way of providing optimization flags and
other CFLAGS, but know one knows about it.
4) Our —with-debugging=0 optimization flags are pretty bad, we should
improve them
So choices are
A) follow standard
B) Continue our way
C) Hybrid that does not use our own flags if user provides optimization
flag.
Request-assigned: Satish, if CLAGS contains a -O CXXFLAGS contains a -O
FFLAGS contains a -O then turn off PETSc generation of optimization flags for
that compiler
Request-assigned: Satish, if mpicc, mpicxx, mpifc provide -O flags then turn
off PETSc generation of optimization flags
Won’t completely satisfy anyone but me.
Barry