--- src/common/atomic.h.org	2019-01-03 18:32:44.559483342 +0000
+++ src/common/atomic.h	2019-01-03 17:15:30.685581196 +0000
@@ -1214,6 +1214,24 @@
 	v->counter--;
 }
 
+static __inline__ void atomic_add(int i, atomic_t *v)
+{
+	int count;
+	for(count = 1; count <= i; ++count)
+    	{
+		v->counter++;
+    	}
+}
+
+static __inline__ void atomic_sub(int i, atomic_t *v)
+{
+	int count;
+	for(count = 1; count <= i; ++count)
+    	{
+		v->counter--;
+    	}
+}
+
 static __inline__ int atomic_dec_and_test(atomic_t *v)
 {
 	int res;
--- src/common/RTMath.cpp.org	2018-08-18 10:27:29.504025946 +0200
+++ src/common/RTMath.cpp	2018-08-18 10:29:08.333593140 +0200
@@ -22,6 +22,9 @@
  ***************************************************************************/
 
 #include "RTMath.h"
+#if defined(__aarch64__)
+#include <time.h>
+#endif
 
 // for unsafeMicroSeconds() implementation
 #if !defined(WIN32) && !defined(__APPLE__)
@@ -73,6 +76,10 @@
     return t;
     #elif defined(__APPLE__)
     return (time_stamp_t) mach_absolute_time();
+    #elif defined(__aarch64__)
+    timespec tp;
+    clock_gettime(CLOCK_MONOTONIC, &tp);
+    return tp.tv_nsec;
     #else // we don't want to use a slow generic solution
     #  error "Sorry, LinuxSampler lacks time stamp code for your system."
     #  error "Please report this error and the CPU you are using to the LinuxSampler developers mailing list!"
