<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="https://reviewboard.asterisk.org/r/1852/">https://reviewboard.asterisk.org/r/1852/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On April 6th, 2012, 10:45 a.m., <b>Paul Belanger</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Are you proposing this for 1.8? or trunk only? My vote is for trunk, since we've had problems in the past when changing the build process mid branch.</pre>
</blockquote>
<p>On April 6th, 2012, 10:49 a.m., <b>opticron</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I was planning on 1.8+, but given that, I can switch 1.8 and 10 to "native" for PROC when building with x86_64 and only apply this to trunk.</pre>
</blockquote>
<p>On April 6th, 2012, 10:53 a.m., <b>Kevin Fleming</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">In order to do that you'll have to enhance the configure script to check whether -march=native is supported by the compiler, because it's a fairly recent addition to GCC. I have no objection to this being changed in all supported release branches and trunk; everyone who packages Asterisk has to work around this mess, and it doesn't provide much benefit.
Another option would be to make '-march=native' be controlled via a menuselect option that defaults to 'on', thus providing the optimization that most users want but making it easy to disable when building packages.</pre>
</blockquote>
<p>On April 6th, 2012, 2:25 p.m., <b>opticron</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">The way that things are currently setup, the makefile will ignore PROC settings that gcc does not support and continue the build with whatever -march defaults to.</pre>
</blockquote>
</blockquote>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">You have removed that logic in this patch, though. I still think that having the configure script check for '-march=native' support and then enabling it by default if it supported would solve the situation for most users; for anyone building Asterisk to run on the same machine it was built on, it will be built optimally if their compiler supports that mode. For anyone building Asterisk to run on a different machine from the build machine, they can disable the automatic '-march=native' build flag (to either use the compiler's default, or to provide their own).</pre>
<br />
<p>- Kevin</p>
<br />
<p>On April 6th, 2012, 10:18 a.m., opticron wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.org/media/rb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
<tr>
<td>
<div>Review request for Asterisk Developers.</div>
<div>By opticron.</div>
<p style="color: grey;"><i>Updated April 6, 2012, 10:18 a.m.</i></p>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">The selection of PROC as k8 for -march on 64bit systems can cause gcc to create binaries that will not run on the local machine since it will optimize to use 3Dnow! and extended 3Dnow! instructions where possible. This type of code shouldn't even really be in the Asterisk build system so I'm ripping it out in its entirety instead of changing k8 to native.
One downside of this change is that Asterisk will now be slightly less optimized by default than previously.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Ran this through the testsuite and it didn't break anything.</pre>
</td>
</tr>
</table>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19462">ASTERISK-19462</a>
</div>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>branches/1.8/Makefile <span style="color: grey">(361090)</span></li>
<li>branches/1.8/codecs/gsm/Makefile <span style="color: grey">(361090)</span></li>
<li>branches/1.8/codecs/gsm/src/k6opt.s <span style="color: grey">(361090)</span></li>
<li>branches/1.8/codecs/lpc10/Makefile <span style="color: grey">(361090)</span></li>
<li>branches/1.8/makeopts.in <span style="color: grey">(361090)</span></li>
</ul>
<p><a href="https://reviewboard.asterisk.org/r/1852/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>