Hi,

While building the APR library with VS2013 for Win32(x86) platform, the following link errors are encountered.

apr_atomic.obj : error LNK2019: unresolved external symbol __InterlockedIncrement referenced in function _apr_atomic_inc32@4
apr_atomic.obj : error LNK2019: unresolved external symbol __InterlockedExchangeAdd referenced in function _apr_atomic_add32@8
apr_atomic.obj : error LNK2019: unresolved external symbol __InterlockedExchange referenced in function _apr_atomic_set32@8
apr_atomic.obj : error LNK2019: unresolved external symbol __InterlockedDecrement referenced in function _apr_atomic_dec32@4
apr_atomic.obj : error LNK2019: unresolved external symbol __InterlockedCompareExchange referenced in function _apr_atomic_cas32@12

These errors are caused by the use of the new Platform Toolset v120 which gets installed with VS2013. More specifically, the problem is in the function cast wrappers defined in apr_atomic.c and used only for Win32 (x86) platform. Taking out the function casts helps resolve the link errors with a penalty of having warning messages instead.

The build for x64 platform is not affected.

Would you be interested in addressing this issue in the APR mainstream in one or the other way?

Regards,
Arsen