Subject: Re: [Boost-build] Problem with pragma intrinsic(_InterlockedCompareExchange)
From: Lars Viklund (zao_at_[hidden])
Date: 2014-08-19 13:26:01
On Mon, Aug 18, 2014 at 09:44:55PM -0700, Adam Beneschan wrote:
> I'm not an old hand at building Boost (I did install 1.55 on a different
> machine), so sorry if this is a trivial question.
> I'm trying to build 1.56 on a Windows 8 system, using mingw and gcc.
> ./boost/thread/win32/thread_primitives.hpp:180:0: warning: ignoring #pragma
> intrinsic [-Wunknown-pragmas]
> #pragma intrinsic(_InterlockedCompareExchange)
> I can't link any program that needs -lboost_thread; it complains about
> undefined references to _InterlockedCompareExchange.
> Is this just a matter of adding __stdcall to the declaration of
> _InterlockedCompareExchange in thread_primitives.hpp, or is a different fix
No, that's not the correct root cause or fix. I also barked upon the
wrong tree about it.
See Niall's diagnosis over on the boost-users list:
The problem is known and fixed in trunk, and was not considered a
showstopper when it was detected very late in the 1.56 release cycle.
The commit range that fixes the problem is:
> Assuming I either fix the source myself or get a patch, how would I rebuild
> without rebuilding all of Boost from scratch? Sorry if this seems like a
> dumb question, but so far I've just followed instructions without really
> knowing anything about b2, and I'm hoping not to have to do another
> four-and-a-half-hour build.
As mentioned, builds of Boost are incremental unless you go and
obliterate previous artifacts.
Note that this is the list for questions about the build system itself,
not the Boost that happens to be built by it. You probably want boost@
(for questions about the development of Boost itself), or boost-users@
(for questions about the use of Boost as an end-developer).
-- Lars Viklund | zao_at_[hidden]
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk