cmake NDB_HAVE_XCNG examples

alibaba/AliSQL storage/ndb/ndb_configure.cmake :156

CHECK_CXX_SOURCE_RUNS("
  #define HAVE_ATOMIC_H ${HAVE_ATOMIC_H}
  #include \"${CMAKE_SOURCE_DIR}/storage/ndb/src/kernel/vm/mt-asm.h\"
  int main()
  {
    unsigned int a = 0;
    volatile unsigned int *ap = (volatile unsigned int*)&a;
    #ifdef NDB_HAVE_XCNG
      a = xcng(ap, 1);
      cpu_pause();
    #endif
    mb();
    * ap = 2;
    rmb();
    * ap = 1;
    wmb();
    * ap = 0;
    read_barrier_depends();
    return a;
  }"
  NDB_BUILD_NDBMTD)

alibaba/AliSQLBackup storage/ndb/ndb_configure.cmake :156

CHECK_CXX_SOURCE_RUNS("
  #define HAVE_ATOMIC_H ${HAVE_ATOMIC_H}
  #include \"${CMAKE_SOURCE_DIR}/storage/ndb/src/kernel/vm/mt-asm.h\"
  int main()
  {
    unsigned int a = 0;
    volatile unsigned int *ap = (volatile unsigned int*)&a;
    #ifdef NDB_HAVE_XCNG
      a = xcng(ap, 1);
      cpu_pause();
    #endif
    mb();
    * ap = 2;
    rmb();
    * ap = 1;
    wmb();
    * ap = 0;
    read_barrier_depends();
    return a;
  }"
  NDB_BUILD_NDBMTD)