[Boost-bugs] [Boost C++ Libraries] #9694: boost/thread.hpp doesn't compile with MinGW and -march=pentium3

Subject: [Boost-bugs] [Boost C++ Libraries] #9694: boost/thread.hpp doesn't compile with MinGW and -march=pentium3
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-02-21 12:48:34


#9694: boost/thread.hpp doesn't compile with MinGW and -march=pentium3
--------------------------------------+------------------------
 Reporter: Marcin Wojdyr <wojdyr@…> | Owner: anthonyw
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: thread
  Version: Boost 1.55.0 | Severity: Regression
 Keywords: |
--------------------------------------+------------------------
 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.

 {{{
 $ cat test.cpp
 #include <boost/thread.hpp>

 $ /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& M128::operator&=(const M128&)':
 C:/msys64/mingw32/i686-w64-mingw32/include/dvec.h:71:78: error:
 '_mm_and_si128' was not declared in this scope
    M128& operator&=(const M128 &a) { return *this = (M128)
 _mm_and_si128(vec,a); }
 }}}

 Googling around I've found the same error message here:
 http://pastebin.com/4nXK0V73

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/9694>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:15 UTC