id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 5610,boost.thread doesn't build for mingw64 target.,pluto@…,viboes,"boost-1.46.1 cross-compilation for mingw64 fails with following errors: {{{ o"" ""libs/thread/src/win32/thread.cpp"" In file included from ./boost/thread/win32/basic_timed_mutex.hpp:14:0, from ./boost/thread/win32/mutex.hpp:8, from ./boost/thread/mutex.hpp:14, from ./boost/thread/detail/thread.hpp:13, from ./boost/thread/thread.hpp:22, from libs/thread/src/win32/thread.cpp:10: ./boost/thread/win32/interlocked_read.hpp: In function 'void* boost::detail::interlocked_read_acquire(void* volatile*)': ./boost/thread/win32/interlocked_read.hpp:63:20: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] ./boost/thread/win32/interlocked_read.hpp: In function 'void boost::detail::interlocked_write_release(void* volatile*, void*)': ./boost/thread/win32/interlocked_read.hpp:71:13: error: cast from 'void*' to 'long int' loses precision [-fpermissive] ./boost/thread/win32/interlocked_read.hpp:71:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] In file included from ./boost/thread/win32/mutex.hpp:8:0, from ./boost/thread/mutex.hpp:14, from ./boost/thread/detail/thread.hpp:13, from ./boost/thread/thread.hpp:22, from libs/thread/src/win32/thread.cpp:10: ./boost/thread/win32/basic_timed_mutex.hpp: In member function 'void boost::detail::basic_timed_mutex::destroy()': ./boost/thread/win32/basic_timed_mutex.hpp:46:39: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] In file included from ./boost/thread/win32/mutex.hpp:8:0, from ./boost/thread/mutex.hpp:14, from ./boost/thread/detail/thread.hpp:13, from ./boost/thread/thread.hpp:22, from libs/thread/src/win32/thread.cpp:10: ./boost/thread/win32/basic_timed_mutex.hpp: In member function 'void* boost::detail::basic_timed_mutex::get_event()': ./boost/thread/win32/basic_timed_mutex.hpp:183:43: error: cast from 'void*' to 'long int' loses precision [-fpermissive] ./boost/thread/win32/basic_timed_mutex.hpp:183:43: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] In file included from ./boost/thread/once.hpp:14:0, from libs/thread/src/win32/thread.cpp:17: ./boost/thread/win32/once.hpp: In function 'void boost::call_once(boost::once_flag&, Function)': ./boost/thread/win32/once.hpp:136:20: error: '_InterlockedCompareExchange' is not a member of 'boost::detail' ./boost/thread/win32/once.hpp:136:20: note: suggested alternative: /local/devel/toolchain46/x86_64-pc-mingw32.host64/lib/gcc/x86_64-pc-mingw32/4.6.1/../../../../x86_64-pc-mingw32/include/winnt.h:1385:23: note: '_InterlockedCompareExchange' ./boost/thread/win32/once.hpp:152:25: error: '_InterlockedIncrement' is not a member of 'boost::detail' ./boost/thread/win32/once.hpp:152:25: note: suggested alternative: /local/devel/toolchain46/x86_64-pc-mingw32.host64/lib/gcc/x86_64-pc-mingw32/4.6.1/../../../../x86_64-pc-mingw32/include/winnt.h:1336:23: note: '_InterlockedIncrement' ./boost/thread/win32/once.hpp:155:21: error: '_InterlockedExchange' is not a member of 'boost::detail' ./boost/thread/win32/once.hpp:155:21: note: suggested alternative: /local/devel/toolchain46/x86_64-pc-mingw32.host64/lib/gcc/x86_64-pc-mingw32/4.6.1/../../../../x86_64-pc-mingw32/include/winnt.h:1352:23: note: '_InterlockedExchange' ./boost/thread/win32/once.hpp:169:21: error: '_InterlockedExchange' is not a member of 'boost::detail' ./boost/thread/win32/once.hpp:169:21: note: suggested alternative: /local/devel/toolchain46/x86_64-pc-mingw32.host64/lib/gcc/x86_64-pc-mingw32/4.6.1/../../../../x86_64-pc-mingw32/include/winnt.h:1352:23: note: '_InterlockedExchange' ./boost/thread/win32/once.hpp:184:17: error: '_InterlockedIncrement' is not a member of 'boost::detail' ./boost/thread/win32/once.hpp:184:17: note: suggested alternative: /local/devel/toolchain46/x86_64-pc-mingw32.host64/lib/gcc/x86_64-pc-mingw32/4.6.1/../../../../x86_64-pc-mingw32/include/winnt.h:1336:23: note: '_InterlockedIncrement' }}} as you can see there're invalid void* -> long casts (on win64 long == 32 bits, void* == 64 bits) and other incompatibilites in Interlocked* decls. ps). i'm using mingw64-headers from: [https://mingw-w64.svn.sourceforge.net/svnroot/mingw-w64/trunk/mingw-w64-headers]",Bugs,closed,To Be Determined,thread,Boost 1.49.0,Showstopper,fixed,,phprus@…