From: Sergey Skorniakov (s.skorniakov_at_[hidden])
Date: 2005-01-17 03:57:22


Hello, All!

When I tried to compile thread library for AMD 64 with DDK compiler, I got a
linker error:
once.obj : error LNK2019: unresolved external symbol
_InterlockedCompareExchange referenced in function "long __cdecl `anonymous
namespace'::compare_exchange(long * volatile,long,long)"
(?compare_exchange@?A0x21094b06@@YAJRAJJJ_at_Z)

I guess, this is because InterlockedCompareExchange has only intrinsic form
on AMD64 platform and used by pointer in compare_exchange
(thread/src/once.cpp) function. Test code that also uses
InterlockedCompareExchange by pointer failed to link too, but code that just
calls this function works.

With best regards, Sergey Skorniakov.