Boost logo

Boost :

From: p.klotz_at_[hidden]
Date: 2005-03-07 08:21:39


Hi

I have sent a mail about this topic to boost-users a few weeks ago but got
no response.

There exist a few problems when trying to compile Boost 1.32.0 under AMD64
with VS.NET 2005:

* No toolset exists to compile Boost 1.32.0 native on the AMD64 platform
(no cross compile). The attached file vc-8_0-amd64-tools.jam fixes that.
* InterlockedExchange() in line 44 of lwm_win32.hpp collides with a macro
of the same name in WinBase.h

One finds in WinBase.h:

        #elif defined(_M_AMD64) && !defined(RC_INVOKED)
        ...
        #define InterlockedExchange _InterlockedExchange

I changed the name of Boost's function to InterlockedExchangeBoost() to
avoid this problem.

* No type long_type exists when compiling with the Microsoft Compiler. The
64Bit part in lwm_win32.hpp seems to have been written for the Intel
Compiler. An additional #ifdef now checks if the 64Bit compiler is from
Intel or Microsoft.

The InterlockedExchange() and long_type issues are fixed by
boost_1_32_0-AMD64.patch.

Maybe these changes can be integrated in some form in the next version of
Boost.

Best regards, Peter.





Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk