diff --git a/liblfds611/inc/liblfds611.h b/liblfds611/inc/liblfds611.h
index 57b3443..1359eac 100644
--- a/liblfds611/inc/liblfds611.h
+++ b/liblfds611/inc/liblfds611.h
@@ -129,6 +129,24 @@
     #define LFDS611_BARRIER_PROCESSOR_FULL   __sync_synchronize()
   #endif
 
+  #if (defined __APPLE__ && defined __x86_64__ && __clang__)
+    // ky : any APPLE with CLANG on x64
+    #include <assert.h>
+    #include <stdio.h>
+    #include <stdlib.h>
+    typedef unsigned long long int           lfds611_atom_t;
+    #define LFDS611_INLINE                   inline
+    #define LFDS611_ALIGN(alignment)         __attribute__( (aligned(alignment)) )
+    #define LFDS611_ALIGN_SINGLE_POINTER     8
+    #define LFDS611_ALIGN_DOUBLE_POINTER     16
+    #define LFDS611_BARRIER_COMPILER_LOAD    __asm__ __volatile__ ( "" : : : "memory" )
+    #define LFDS611_BARRIER_COMPILER_STORE   __asm__ __volatile__ ( "" : : : "memory" )
+    #define LFDS611_BARRIER_COMPILER_FULL    __asm__ __volatile__ ( "" : : : "memory" )
+    #define LFDS611_BARRIER_PROCESSOR_LOAD   __sync_synchronize()
+    #define LFDS611_BARRIER_PROCESSOR_STORE  __sync_synchronize()
+    #define LFDS611_BARRIER_PROCESSOR_FULL   __sync_synchronize()
+  #endif
+
   #if (defined __unix__ && defined __arm__ && __GNUC__)
     // TRD : any UNIX with GCC on ARM
     #include <assert.h>
diff --git a/test/src/abstraction.h b/test/src/abstraction.h
index 01b4900..b4b3a6e 100644
--- a/test/src/abstraction.h
+++ b/test/src/abstraction.h
@@ -41,6 +41,16 @@
   #define CALLING_CONVENTION  
 #endif
 
+#if (defined __APPLE__ && defined __clang__)
+  // ky : any APPLE with CLANG on x64
+  #include <unistd.h>
+  #include <pthread.h>
+  #include <sched.h>
+  typedef pthread_t           thread_state_t;
+  typedef void *              thread_return_t;
+  #define CALLING_CONVENTION  
+#endif
+
 typedef thread_return_t (CALLING_CONVENTION *thread_function_t)( void *thread_user_state );
 
 /***** public prototypes *****/
diff --git a/test/src/abstraction_cpu_count.c b/test/src/abstraction_cpu_count.c
index a35f024..0a8891a 100644
--- a/test/src/abstraction_cpu_count.c
+++ b/test/src/abstraction_cpu_count.c
@@ -79,3 +79,25 @@
 
 #endif
 
+#if (defined __APPLE__ && defined __clang__)
+
+  /* TRD : Linux on any CPU with GCC
+
+           this function I believe is Linux specific and varies by UNIX flavour
+
+           __linux__  indicates Linux
+           __GNUC__   indicates GCC
+  */
+
+  unsigned int abstraction_cpu_count()
+  {
+    long int
+      cpu_count;
+
+    cpu_count = sysconf( _SC_NPROCESSORS_ONLN );
+
+    return( (unsigned int) cpu_count );
+  }
+
+#endif
+
diff --git a/test/src/abstraction_thread_start.c b/test/src/abstraction_thread_start.c
index 09b58c2..d4e6068 100644
--- a/test/src/abstraction_thread_start.c
+++ b/test/src/abstraction_thread_start.c
@@ -1,6 +1,6 @@
 #include "internal.h"
 
-
+ #include <pthread.h>
 
 
 
@@ -139,3 +139,47 @@
 
 #endif
 
+#if (defined __APPLE__)
+
+  /* TRD : any UNIX on any CPU with any compiler
+
+           I assumed pthreads is available on any UNIX.
+
+           __unix__   indicates Solaris, Linux, HPUX, etc
+  */
+
+  int abstraction_thread_start( thread_state_t *thread_state, unsigned int cpu, thread_function_t thread_function, void *thread_user_state )
+  {
+    int
+      rv = 0,
+      rv_create;
+
+    pthread_attr_t
+      attr;
+
+    //cpu_set_t
+    //  cpuset;
+
+    assert( thread_state != NULL );
+    // TRD : cpu can be any value in its range
+    assert( thread_function != NULL );
+    // TRD : thread_user_state can be NULL
+
+    pthread_attr_init( &attr );
+
+    //CPU_ZERO( &cpuset );
+    //CPU_SET( cpu, &cpuset );
+    //pthread_attr_setaffinity_np( &attr, sizeof(cpuset), &cpuset );
+
+    rv_create = pthread_create( thread_state, &attr, thread_function, thread_user_state );
+
+    if( rv_create == 0 )
+      rv = 1;
+
+    pthread_attr_destroy( &attr );
+
+    return( rv );
+  }
+
+#endif
+
diff --git a/test/src/abstraction_thread_wait.c b/test/src/abstraction_thread_wait.c
index 572fb5d..3851297 100644
--- a/test/src/abstraction_thread_wait.c
+++ b/test/src/abstraction_thread_wait.c
@@ -69,3 +69,21 @@
 
 #endif
 
+#if (defined __APPLE__)
+
+  /* TRD : any UNIX on any CPU with any compiler
+
+           I assumed pthreads is available on any UNIX.
+
+           __unix__   indicates Solaris, Linux, HPUX, etc
+  */
+
+  void abstraction_thread_wait( thread_state_t thread_state )
+  {
+    pthread_join( thread_state,  NULL );
+
+    return;
+  }
+
+#endif
+
-- 
2.0.4

