<div class="gmail_quote">On Tue, Jan 17, 2012 at 17:58, Pavan Balaji <span dir="ltr">&lt;<a href="mailto:balaji@mcs.anl.gov">balaji@mcs.anl.gov</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Not unless you specified the optimization flags in CFLAGS.  The README has information on how to give an optimization flag only to MPICH2, and not the application it&#39;s compiling.</blockquote></div><br><div>I&#39;m aware of this, however</div>
<div><br></div><div>1. autoconf convention is that ./configure CFLAGS=... affects the flags that are used to build the library, but generally do not affect the semantics of the thing being built.</div><div><br></div><div>
2. The packaging environments for many Linux distributions set CFLAGS according to some convention, possibly modified by the user&#39;s preferences. The result is that each packager eventually learns that MPICH2 is special and they write something like the following. New distributions, institutions rolling their own packages, and users compiling from source themselves tend not to know about this special case, so we still see it frequently on petsc-maint.</div>
<div><br></div><div><a href="https://aur.archlinux.org/packages/mp/mpich2/PKGBUILD">https://aur.archlinux.org/packages/mp/mpich2/PKGBUILD</a> :</div><div><br></div><div><div><font face="&#39;courier new&#39;, monospace">  # CFLAGS etc are normally written into the wrapper compilers.  This</font></div>
<div><font face="&#39;courier new&#39;, monospace">  # gives surprising results, e.g. when the user wants to compile their</font></div><div><font face="&#39;courier new&#39;, monospace">  # program without optimization.</font></div>
<div><font face="&#39;courier new&#39;, monospace">  export MPICH2LIB_CFLAGS=&quot;$CFLAGS&quot;;      unset CFLAGS</font></div><div><font face="&#39;courier new&#39;, monospace">  export MPICH2LIB_CXXFLAGS=&quot;$CXXFLAGS&quot;;  unset CXXFLAGS</font></div>
<div><font face="&#39;courier new&#39;, monospace">  export MPICH2LIB_FFLAGS=&quot;$FFLAGS&quot;;      unset FFLAGS</font></div><div><font face="&#39;courier new&#39;, monospace">  export MPICH2LIB_F90FLAGS=&quot;$F90FLAGS&quot;;  unset F90FLAGS</font></div>
<div><font face="&#39;courier new&#39;, monospace">  export MPICH2LIB_LDFLAGS=&quot;$LDFLAGS&quot;;    unset LDFLAGS</font></div></div><div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><span style="font-family:arial,helvetica,sans-serif">(This needs to unset LDFLAGS because -Wl,--as-needed breaks the wrappers.)</span></div>
<div><span style="font-family:arial,helvetica,sans-serif"><br></span></div><div><span style="font-family:arial,helvetica,sans-serif"><br></span></div><div><font face="arial, helvetica, sans-serif"><a href="http://packages.debian.org/sid/mpich2">http://packages.debian.org/sid/mpich2</a> :</font></div>
<div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><div style="font-family:&#39;courier new&#39;,monospace">DEB_CONFIGURE_SCRIPT_ENV += MPICH2LIB_CFLAGS=&quot;$(CFLAGS)&quot; CFLAGS=&quot;&quot;</div>
<div style="font-family:&#39;courier new&#39;,monospace">DEB_CONFIGURE_SCRIPT_ENV += MPICH2LIB_CXXFLAGS=&quot;$(CXXFLAGS)&quot; CXXFLAGS=&quot;&quot;</div><div style="font-family:&#39;courier new&#39;,monospace">DEB_CONFIGURE_SCRIPT_ENV += MPICH2LIB_FFLAGS=&quot;$(FFLAGS)&quot; FFLAGS=&quot;&quot;</div>
<div style="font-family:&#39;courier new&#39;,monospace">DEB_CONFIGURE_SCRIPT_ENV += MPICH2LIB_FCFLAGS=&quot;$(FCFLAGS)&quot; FCFLAGS=&quot;&quot;</div><div style="font-family:&#39;courier new&#39;,monospace"><br></div></div>
<div style="font-family:&#39;courier new&#39;,monospace"><br></div><div><font face="arial, helvetica, sans-serif">If it were up to me, I would have used CFLAGS et al to build MPICH2 (as per convention) and have MPICH2WRAPPER_CFLAGS, etc, for those users that wanted to add something to the wrappers.</font></div>