Boost C++ Libraries: Ticket #4784: numeric/interval/hw_rounding for __amd64__ https://svn.boost.org/trac10/ticket/4784 <p> Interval fails regression tests requiring numeric/interval/hw_rounding.hpp. It gives </p> <pre class="wiki">../boost/numeric/interval/hw_rounding.hpp:40:4: error: #error Boost.Numeric.Interval: Please specify rounding control mechanism. </pre><p> My compiler defines <span class="underline">amd64</span> (note the double underscores before and after). How do I determine the hardware rounding control mechanism? </p> <p> Here's <a class="ext-link" href="http://support.amd.com/us/Processor_TechDocs/24592.pdf"><span class="icon">​</span>the AMD64 manual (pdf)</a>, but I don't understand things well enough to say which mechanism it uses. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/4784 Trac 1.4.3 Jim Bell <jim@…> Mon, 25 Oct 2010 02:52:28 GMT <link>https://svn.boost.org/trac10/ticket/4784#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/4784#comment:1</guid> <description> <p> Wiki-formatting zapped my compiler define: </p> <pre class="wiki">__amd64__ </pre> </description> <category>Ticket</category> </item> <item> <author>Jim Bell <jim@…></author> <pubDate>Mon, 25 Oct 2010 02:58:11 GMT</pubDate> <title>component changed; owner set https://svn.boost.org/trac10/ticket/4784#comment:2 https://svn.boost.org/trac10/ticket/4784#comment:2 <ul> <li><strong>owner</strong> set to <span class="trac-author">Boris Gubenko</span> </li> <li><strong>component</strong> <span class="trac-field-old">None</span> → <span class="trac-field-new">interval</span> </li> </ul> Ticket Jim Bell <jim@…> Mon, 25 Oct 2010 14:10:22 GMT severity changed https://svn.boost.org/trac10/ticket/4784#comment:3 https://svn.boost.org/trac10/ticket/4784#comment:3 <ul> <li><strong>severity</strong> <span class="trac-field-old">Problem</span> → <span class="trac-field-new">Regression</span> </li> </ul> <p> Per GCC's <a class="ext-link" href="http://gcc.gnu.org/install/specific.html#x86-64-x-x"><span class="icon">​</span>install notes</a>, amd64-*-* is an alias for x86_64-*-*, so the same treatment should apply, I think. </p> Ticket Marshall Clow Mon, 01 Nov 2010 03:05:01 GMT <link>https://svn.boost.org/trac10/ticket/4784#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/4784#comment:4</guid> <description> <p> Jim - did this work in a previous release, and is broken now? I'm trying to understand why this is a "regression". </p> </description> <category>Ticket</category> </item> <item> <author>Jim Bell <jim@…></author> <pubDate>Mon, 01 Nov 2010 12:33:02 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/4784#comment:5 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/4784#comment:5</guid> <description> <p> I marked it 'regression' because it's putting yellow on the regression matrix for at least one platform (FBSD-64) and possibly more. Would another severity be more appropriate? </p> <p> Either way, it seems documented in gcc and a very small change would fix it. </p> </description> <category>Ticket</category> </item> <item> <author>Jim Bell <jim@…></author> <pubDate>Wed, 03 Nov 2010 15:42:48 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/4784#comment:6 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/4784#comment:6</guid> <description> <p> Sandia-pgi-10.1, which fails the same set of regressions, is also run on the amd64 chip. The pgCC command-line (from the regression runner) is: </p> <pre class="wiki">pgcpp1 --llalign -Dunix -D__unix -D__unix__ -Dlinux -D__linux -D__linux__ -D__NO_MATH_INLINES -D__x86_64__ -D__LONG_MAX__=9223372036854775807L '-D__SIZE_TYPE__=unsigned long int' '-D__PTRDIFF_TYPE__=long int' -D__THROW= -D__extension__= -D__amd64__ -D__SSE__ -D__MMX__ -D__SSE2__ -D__SSE3__ -D__SSSE3__ -D__PGI -I/sierra/Sntools/extras/compilers/pgi/linux86-64/10.1/include/CC -I/sierra/Sntools/extras/compilers/pgi/linux86-64/10.1/include -I/usr/local/include -I/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include -I/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include -I/usr/include --gnu_version=40102 --preprocess -q foo.cpp </pre><p> So both these macros are defined, which seems consistent with GCC: </p> <pre class="wiki">__x86_64__ __amd64__ </pre> </description> <category>Ticket</category> </item> <item> <author>Jim Bell <jim@…></author> <pubDate>Thu, 04 Nov 2010 21:49:04 GMT</pubDate> <title>keywords, severity changed https://svn.boost.org/trac10/ticket/4784#comment:7 https://svn.boost.org/trac10/ticket/4784#comment:7 <ul> <li><strong>keywords</strong> regression added </li> <li><strong>severity</strong> <span class="trac-field-old">Regression</span> → <span class="trac-field-new">Problem</span> </li> </ul> <p> Per <a class="ext-link" href="http://www.freebsd.org/cgi/man.cgi?query=fesetround&amp;sektion=3&amp;manpath=FreeBSD+8.0-RELEASE"><span class="icon">​</span>fesetround() man page</a> on FreeBSD, </p> <pre class="wiki">The fegetround() and fesetround() functions conform to ISO/IEC 9899:1999 (``ISO C99''). </pre><p> See also <a class="ext-link" href="http://www.freebsd.org/cgi/man.cgi?query=fenv&amp;sektion=3&amp;manpath=FreeBSD+8.0-RELEASE"><span class="icon">​</span>fenv()</a>. </p> <p> Can't the C99 case, then, be chosen in hw_rounding.hpp for FreeBSD? </p> Ticket