[ https://issues.apache.org/jira/browse/ZOOKEEPER-1635?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13864454#comment-13864454 ]
Salabhanjika commented on ZOOKEEPER-1635: ----------------------------------------- bq. I'm not sure which admin guide you're referring to, I can only see e-mail pointers. In any case, we have worked on a couple of patches to fix the windows build on both trunk and 3.4 branch. [~fpj], supported platforms section under ZooKeeper admin guide claims "Development Only" support only for Windows (Win32 only) http://zookeeper.apache.org/doc/trunk/zookeeperAdmin.html#sc_supportedPlatforms > Support x64 architecture for Windows > ------------------------------------ > > Key: ZOOKEEPER-1635 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1635 > Project: ZooKeeper > Issue Type: Improvement > Environment: Windows x64 systems. > Reporter: Tomas Gutierrez > Fix For: 3.5.0 > > > x64 target does not support _asm inline (See: > http://msdn.microsoft.com/en-us/library/4ks26t93(v=vs.80).aspx) > The proposal is to use native windows function which still valid for i386 and > x64 architecture. > In order to avoid any potential break, a compilation directive has been > added. But, the best should be the removal of the asm part. > ----------- > sample code > ----------- > int32_t fetch_and_add(volatile int32_t* operand, int incr) > { > #ifndef WIN32 > int32_t result; > asm __volatile__( > "lock xaddl %0,%1\n" > : "=r"(result), "=m"(*(int *)operand) > : "0"(incr) > : "memory"); > return result; > #else > #ifdef WIN32_NOASM > InterlockedExchangeAdd(operand, incr); > return *operand; > #else > volatile int32_t result; > _asm > { > mov eax, operand; //eax = v; > mov ebx, incr; // ebx = i; > mov ecx, 0x0; // ecx = 0; > lock xadd dword ptr [eax], ecx; > lock xadd dword ptr [eax], ebx; > mov result, ecx; // result = ebx; > } > return result;*/ > #endif > #endif > } -- This message was sent by Atlassian JIRA (v6.1.5#6160)