Boost C++ Libraries: Ticket #9694: boost/thread.hpp doesn't compile with MinGW and -march=pentium3 https://svn.boost.org/trac10/ticket/9694 <p> I get the same with two 32-bit MinGW-w64 versions: from g++ 4.8.2 from MSYS2 and g++ 4.8.1 from mingw-builds. This problem doesn't exist in boost 1.53. </p> <pre class="wiki">$ cat test.cpp #include &lt;boost/thread.hpp&gt; $ /mingw32/bin/g++ -I./checkout/boost_1_55_0 -march=pentium3 -c test.cpp In file included from C:/msys64/mingw32/i686-w64-mingw32/include/intrin.h:151:0, from ./checkout/boost_1_55_0/boost/detail/interlocked.hpp:146, from ./checkout/boost_1_55_0/boost/thread/win32/thread_primitives.hpp:17, from ./checkout/boost_1_55_0/boost/thread/win32/thread_data.hpp:11, from ./checkout/boost_1_55_0/boost/thread/thread_only.hpp:15, from ./checkout/boost_1_55_0/boost/thread/thread.hpp:12, from ./checkout/boost_1_55_0/boost/thread.hpp:13, from test.cpp:1: C:/msys64/mingw32/i686-w64-mingw32/include/dvec.h: In function 'const __m128i get_mask128()': C:/msys64/mingw32/i686-w64-mingw32/include/dvec.h:56:83: error: '_mm_set1_epi64' was not declared in this scope static const __m128i mask128 = _mm_set1_epi64(M64((__int64)0xffffffffffffffffll)); ^ C:/msys64/mingw32/i686-w64-mingw32/include/dvec.h: In member function 'M128&amp; M128::operator&amp;=(const M128&amp;)': C:/msys64/mingw32/i686-w64-mingw32/include/dvec.h:71:78: error: '_mm_and_si128' was not declared in this scope M128&amp; operator&amp;=(const M128 &amp;a) { return *this = (M128) _mm_and_si128(vec,a); } </pre><p> Googling around I've found the same error message here: <a class="ext-link" href="http://pastebin.com/4nXK0V73"><span class="icon">​</span>http://pastebin.com/4nXK0V73</a> </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/9694 Trac 1.4.3 viboes Sun, 23 Feb 2014 13:51:26 GMT owner, component changed https://svn.boost.org/trac10/ticket/9694#comment:1 https://svn.boost.org/trac10/ticket/9694#comment:1 <ul> <li><strong>owner</strong> changed from <span class="trac-author">Anthony Williams</span> to <span class="trac-author">Peter Dimov</span> </li> <li><strong>component</strong> <span class="trac-field-old">thread</span> → <span class="trac-field-new">smart_ptr</span> </li> </ul> <p> I'm not the owner of boost/detail/interlocked.hpp. Moving to <a class="missing wiki">SmartPtr</a> in case Peter Dimov is aware of the issue. </p> Ticket Peter Dimov Sun, 23 Feb 2014 14:36:33 GMT <link>https://svn.boost.org/trac10/ticket/9694#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/9694#comment:2</guid> <description> <p> This should be reported as a MinGW bug - their &lt;intrin.h&gt; header doesn't compile under -march=pentium3. </p> <p> To get around this issue, try defining BOOST_USE_WINDOWS_H. This will force interlocked.hpp to include windows.h instead of intrin.h. </p> </description> <category>Ticket</category> </item> <item> <author>Marcin Wojdyr <wojdyr@…></author> <pubDate>Tue, 25 Feb 2014 11:34:02 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/9694#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/9694#comment:3</guid> <description> <p> thanks for looking into it </p> <p> I reported it to Mingw-w64 then <a class="ext-link" href="https://sourceforge.net/p/mingw-w64/bugs/383/"><span class="icon">​</span>https://sourceforge.net/p/mingw-w64/bugs/383/</a> </p> <p> I'd close this ticket, but apparently I don't have permissions to do it. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Peter Dimov</dc:creator> <pubDate>Wed, 26 Feb 2014 00:48:12 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/9694#comment:4 https://svn.boost.org/trac10/ticket/9694#comment:4 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> OK, closed. </p> Ticket