diff --git a/Makefile.am b/Makefile.am
index 154f68f5f..793df71c0 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -47,7 +47,7 @@ SUPP_FILES = \
 	darwin9.supp darwin9-drd.supp \
 	darwin10.supp darwin10-drd.supp \
 	darwin11.supp darwin12.supp darwin13.supp darwin14.supp darwin15.supp \
-	darwin16.supp darwin17.supp \
+	darwin16.supp darwin17.supp darwin18.supp \
 	bionic.supp \
 	solaris11.supp solaris12.supp
 DEFAULT_SUPP_FILES = @DEFAULT_SUPP@
diff --git a/configure.ac b/configure.ac
index 289514ff1..397202011 100644
--- a/configure.ac
+++ b/configure.ac
@@ -368,6 +368,7 @@ case "${host_os}" in
         AC_DEFINE([DARWIN_10_11], 101100, [DARWIN_VERS value for Mac OS X 10.11])
         AC_DEFINE([DARWIN_10_12], 101200, [DARWIN_VERS value for macOS 10.12])
         AC_DEFINE([DARWIN_10_13], 101300, [DARWIN_VERS value for macOS 10.13])
+        AC_DEFINE([DARWIN_10_14], 101400, [DARWIN_VERS value for macOS 10.14])
 
 	AC_MSG_CHECKING([for the kernel version])
 	kernel=`uname -r`
@@ -443,9 +444,15 @@ case "${host_os}" in
 		  DEFAULT_SUPP="darwin17.supp ${DEFAULT_SUPP}"
 		  DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
 		  ;;
+             18.*)
+                  AC_MSG_RESULT([Darwin 18.x (${kernel}) / macOS 10.14 Mojave])
+                  AC_DEFINE([DARWIN_VERS], DARWIN_10_14, [Darwin / Mac OS X version])
+                  DEFAULT_SUPP="darwin18.supp ${DEFAULT_SUPP}"
+                  DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
+                  ;;
              *) 
 		  AC_MSG_RESULT([unsupported (${kernel})])
-		  AC_MSG_ERROR([Valgrind works on Darwin 10.x, 11.x, 12.x, 13.x, 14.x, 15.x, 16.x and 17.x (Mac OS X 10.6/7/8/9/10/11 and macOS 10.12/13)])
+		  AC_MSG_ERROR([Valgrind works on Darwin 10.x, 11.x, 12.x, 13.x, 14.x, 15.x, 16.x, 17.x and 18.x (Mac OS X 10.6/7/8/9/10/11 and macOS 10.12/13/14)])
 		  ;;
 	esac
         ;;
diff --git a/coregrind/fixup_macho_loadcmds.c b/coregrind/fixup_macho_loadcmds.c
index cdb3622a5..81ae0e3ab 100644
--- a/coregrind/fixup_macho_loadcmds.c
+++ b/coregrind/fixup_macho_loadcmds.c
@@ -123,7 +123,7 @@
     && DARWIN_VERS != DARWIN_10_7 && DARWIN_VERS != DARWIN_10_8 \
     && DARWIN_VERS != DARWIN_10_9 && DARWIN_VERS != DARWIN_10_10 \
     && DARWIN_VERS != DARWIN_10_11 && DARWIN_VERS != DARWIN_10_12 \
-    && DARWIN_VERS != DARWIN_10_13
+    && DARWIN_VERS != DARWIN_10_13 && DARWIN_VERS != DARWIN_10_14
 #  error "Unknown DARWIN_VERS value.  This file only compiles on Darwin."
 #endif
 
diff --git a/coregrind/m_syswrap/syswrap-amd64-darwin.c b/coregrind/m_syswrap/syswrap-amd64-darwin.c
index f50932977..cb414f207 100644
--- a/coregrind/m_syswrap/syswrap-amd64-darwin.c
+++ b/coregrind/m_syswrap/syswrap-amd64-darwin.c
@@ -483,7 +483,8 @@ void wqthread_hijack(Addr self, Addr kport, Addr stackaddr, Addr workitem,
             || DARWIN_VERS == DARWIN_10_10 \
             || DARWIN_VERS == DARWIN_10_11 \
             || DARWIN_VERS == DARWIN_10_12 \
-            || DARWIN_VERS == DARWIN_10_13
+            || DARWIN_VERS == DARWIN_10_13 \
+            || DARWIN_VERS == DARWIN_10_14
        UWord magic_delta = 0xE0;
 #      else
 #        error "magic_delta: to be computed on new OS version"
diff --git a/coregrind/m_syswrap/syswrap-darwin.c b/coregrind/m_syswrap/syswrap-darwin.c
index 590493df4..90a334bdf 100644
--- a/coregrind/m_syswrap/syswrap-darwin.c
+++ b/coregrind/m_syswrap/syswrap-darwin.c
@@ -1748,6 +1748,12 @@ PRE(fcntl)
       break;
 #  endif
 
+#  if DARWIN_VERS >= DARWIN_10_14
+       case VKI_F_CHECK_LV: /* Check if Library Validation allows this Mach-O file to be
+                               mapped into the calling process */
+           // FIXME: Dejan
+           break;
+#  endif
    default:
       PRINT("fcntl ( %lu, %lu [??] )", ARG1, ARG2);
       log_decaying("UNKNOWN fcntl %lu!", ARG2);
diff --git a/coregrind/m_syswrap/syswrap-x86-darwin.c b/coregrind/m_syswrap/syswrap-x86-darwin.c
index a5d9e9767..7c2612a0f 100644
--- a/coregrind/m_syswrap/syswrap-x86-darwin.c
+++ b/coregrind/m_syswrap/syswrap-x86-darwin.c
@@ -431,7 +431,8 @@ void wqthread_hijack(Addr self, Addr kport, Addr stackaddr, Addr workitem,
            || DARWIN_VERS == DARWIN_10_10 \
            || DARWIN_VERS == DARWIN_10_11 \
            || DARWIN_VERS == DARWIN_10_12 \
-           || DARWIN_VERS == DARWIN_10_13
+           || DARWIN_VERS == DARWIN_10_13 \
+           || DARWIN_VERS == DARWIN_10_14
       UWord magic_delta = 0xB0;
 #     else
 #       error "magic_delta: to be computed on new OS version"
diff --git a/darwin18.supp b/darwin18.supp
new file mode 100644
index 000000000..c3da6b0af
--- /dev/null
+++ b/darwin18.supp
@@ -0,0 +1,5 @@
+
+# Suppressions for Darwin 18.x / macOS 10.14 High Sierra
+
+############################################
+
diff --git a/include/vki/vki-darwin.h b/include/vki/vki-darwin.h
index 3b31ff116..142014faa 100644
--- a/include/vki/vki-darwin.h
+++ b/include/vki/vki-darwin.h
@@ -309,6 +309,9 @@ typedef uint32_t vki_u32;
 # define VKI_F_BARRIERFSYNC              F_BARRIERFSYNC
 # define VKI_F_ADDFILESIGS_RETURN        F_ADDFILESIGS_RETURN
 #endif
+#if DARWIN_VERS >= DARWIN_10_14
+# define VKI_F_CHECK_LV F_CHECK_LV
+#endif
 #define VKI_F_FULLFSYNC	F_FULLFSYNC
 #define VKI_F_PATHPKG_CHECK	F_PATHPKG_CHECK
 #define VKI_F_FREEZE_FS	F_FREEZE_FS
diff --git a/include/vki/vki-scnums-darwin.h b/include/vki/vki-scnums-darwin.h
index 99cb342fa..98ab6d325 100644
--- a/include/vki/vki-scnums-darwin.h
+++ b/include/vki/vki-scnums-darwin.h
@@ -838,6 +838,11 @@
 #define	__NR_os_fault_with_payload  VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(529)
 #endif /* DARWIN_VERS >= DARWIN_10_13 */
 
+#if DARWIN_VERS >= DARWIN_10_14
+#define __NR_kqueue_workloop_ctl    VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(530)
+#define __NR___mach_bridge_remote_time VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(531)
+#endif /* DARWIN_VERS >= DARWIN_10_14 */
+
 #if DARWIN_VERS < DARWIN_10_6
 #define	__NR_MAXSYSCALL             VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(427)
 #elif DARWIN_VERS < DARWIN_10_7
@@ -854,6 +859,8 @@
 #define __NR_MAXSYSCALL             VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(522)
 #elif DARWIN_VERS == DARWIN_10_13
 #define __NR_MAXSYSCALL             VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(530)
+#elif DARWIN_VERS == DARWIN_10_14
+#define __NR_MAXSYSCALL             VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(532)
 #else
 #error unknown darwin version
 #endif