Syntax errors when compiling for WIN64
Environment boost_1_28_0, Intel 6.0, target = _WIN64. The InterlockedIncrement et.al. interfaces in boost/detail/winapi need to be changed as follows, since they are now intrinsics. Technically, I suppose the guard should be _M_IA64, rather than _WIN64, since other target processors+compilers may not support compiler intrinsics for these interfaces. $ diff -c winapi.hpp winapi_original.hpp *** winapi.hpp Thu Jul 18 08:11:11 2002 --- winapi_original.hpp Fri Mar 15 16:00:10 2002 *************** *** 55,82 **** ulong_ptr_type SpinCount; }; - #if defined( _WIN64 ) - - extern "C" long_type __cdecl _InterlockedIncrement(long_type volatile *); - extern "C" long_type __cdecl _InterlockedDecrement(long_type volatile *); - extern "C" long_type __cdecl _InterlockedExchange(long_type volatile *, long_type); - - #pragma intrinsic(_InterlockedIncrement) - #pragma intrinsic(_InterlockedDecrement) - #pragma intrinsic(_InterlockedExchange) - - inline long_type InterlockedIncrement( long_type volatile* lp ) { return _InterlockedIncrement( lp ); } - inline long_type InterlockedDecrement( long_type volatile* lp ) { return _InterlockedDecrement( lp ); } - inline long_type InterlockedExchange( long_type volatile* lp, long_type l ) { return _InterlockedExchange( lp, l ); } - - #else - extern "C" __declspec(dllimport) long_type __stdcall InterlockedIncrement(long_type volatile *); extern "C" __declspec(dllimport) long_type __stdcall InterlockedDecrement(long_type volatile *); extern "C" __declspec(dllimport) long_type __stdcall InterlockedExchange(long_type volatile *, long_type); - #endif - extern "C" __declspec(dllimport) void __stdcall Sleep(dword_type); extern "C" __declspec(dllimport) void __stdcall InitializeCriticalSection(critical_section *); --- 55,64 ---- Tim Fender
From: "bufo19312"
Environment boost_1_28_0, Intel 6.0, target = _WIN64. The InterlockedIncrement et.al. interfaces in boost/detail/winapi need to be changed as follows, since they are now intrinsics.
Technically, I suppose the guard should be _M_IA64, rather than _WIN64, since other target processors+compilers may not support compiler intrinsics for these interfaces.
$ diff -c winapi.hpp winapi_original.hpp
[...] Applied, thank you for the patch.
participants (2)
-
bufo19312
-
Peter Dimov