Subject: [Boost-bugs] [Boost C++ Libraries] #8833: Boost and /clr code
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-07-17 08:56:11
#8833: Boost and /clr code
------------------------------+----------------------
Reporter: anonymous | Owner: anthonyw
Type: Bugs | Status: new
Milestone: To Be Determined | Component: threads
Version: Boost 1.54.0 | Severity: Problem
Keywords: |
------------------------------+----------------------
When using boost in an application which uses threads it gives the fault
message:
{{{
1>c:\program files
(x86)\boost\boost_1_47\boost\thread\win32\thread_primitives.hpp(314):
error C2472: 'boost::detail::win32::interlocked_bit_test_and_set' cannot
be generated in managed code: 'Found an intrinsic not supported in managed
code'; compile with /clr to generate a mixed image
1>c:\program files
(x86)\boost\boost_1_47\boost\thread\win32\basic_timed_mutex.hpp(160):
error C2472: 'boost::detail::basic_timed_mutex::unlock' cannot be
generated in managed code: 'Found an intrinsic not supported in managed
code'; compile with /clr to generate a mixed image
}}}
Found on the internet: Boost.thread uses some thread local storage calls
that don't work if you directly link them with CLR code. In VS2008 the
link would succeed but you'd crash on startup -- I suspect this is a
symptom of the same problem, VS2010-style.
On stackoverflow I found the following workaround:
It is necessary to build boost.thread as a DLL instead of linking it
statically, and maybe it'll link for you that way...
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/8833> 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:13 UTC