Opened 11 years ago
Closed 9 years ago
#5610 closed Bugs (fixed)
boost.thread doesn't build for mingw64 target.
Reported by: | Owned by: | viboes | |
---|---|---|---|
Milestone: | To Be Determined | Component: | thread |
Version: | Boost 1.49.0 | Severity: | Showstopper |
Keywords: | Cc: | phprus@… |
Description
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
Change History (8)
comment:1 by , 11 years ago
Component: | None → thread |
---|---|
Owner: | set to |
comment:2 by , 11 years ago
Cc: | added |
---|
comment:4 by , 11 years ago
Milestone: | To Be Determined |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Closed as suggested. Could someone add what was done to solve this issue? See also http://lists.boost.org/Archives/boost/2011/06/182834.php.
comment:5 by , 9 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
Version: | Boost 1.46.1 → Boost 1.54.0 |
broken again in 1.54.0, jam build system refuses to run on windows (file extension not recognised and no exe provided). also, how to build is unclear. had to guess, guess I was wrong.
comment:6 by , 9 years ago
Version: | Boost 1.54.0 → Boost 1.49.0 |
---|
oops, sorry, last commend and reopen was wrong bug. this should stay closed, I misread the title. I know how folks are about wanting you to re-use existing bugs and searching existing bug reports. I misfired. setting milestone back to 1.49.0
comment:7 by , 9 years ago
Milestone: | → To Be Determined |
---|---|
Owner: | changed from | to
Status: | reopened → new |
Similar ticket: https://svn.boost.org/trac/boost/ticket/4849