diff --git a/3rdparty/json-c/CMakeLists.txt b/3rdparty/json-c/CMakeLists.txt
index f051a06cdd03295a8e14a30aa5484bb8c9d50b13..6d1779dcca0c42fe361fb1e1c714727e8be39ecf 100644
--- a/3rdparty/json-c/CMakeLists.txt
+++ b/3rdparty/json-c/CMakeLists.txt
@@ -6,3 +6,4 @@ file(GLOB JSON_C_HEADERS FILES *.h)
 
 add_library(${PROJECT_NAME} STATIC ${JSON_C_SRCS} ${JSON_C_HEADERS})
 target_include_directories(${PROJECT_NAME} PUBLIC . )
+target_include_directories(${PROJECT_NAME} PUBLIC ../../3rdparty/)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f07a3c7600feae3ffa59c913f06daf89a0a8fc9c..ce906069bffd39ba923de092c7e0a9eee1d66b85 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -91,11 +91,13 @@ if( DARWIN)
     add_subdirectory(3rdparty/json-c-darwin)
     add_subdirectory(3rdparty/libmagic-darwin)
     include_directories(3rdparty/json-c-darwin)
-endif()
-if (ANDROID)
+elseif(ANDROID)
     add_subdirectory(3rdparty/libmagic)
     add_subdirectory(3rdparty/json-c)
     include_directories(cellframe-sdk/3rdparty/)
+elseif(LINUX)
+    add_subdirectory(3rdparty/json-c)
+    
 endif()
 
 if (BUILD_WITH_ZIP)
diff --git a/dap-sdk/core/src/dap_common.c b/dap-sdk/core/src/dap_common.c
index 62264d0bd54e1abea7648b1ead2675cf7d3beaf3..11502274ca1b4f2795a68781c737036035c910a1 100755
--- a/dap-sdk/core/src/dap_common.c
+++ b/dap-sdk/core/src/dap_common.c
@@ -46,6 +46,7 @@
   #include <pthread.h>
   #include <syslog.h>
   #include <signal.h>
+  #include <sys/syscall.h>
 
 #else // WIN32
 
@@ -442,7 +443,25 @@ unsigned int dap_crc32c(unsigned int crc, const void *buf, size_t buflen)
     return crc ^ ~0U;
 }
 
+
 #ifdef DAP_SYS_DEBUG
+
+unsigned dap_gettid()
+{
+
+#ifdef DAP_OS_BSD
+    uint64_t l_tid = 0;
+    pthread_threadid_np(pthread_self(),&l_tid);
+    return (unsigned) l_tid;
+#elif defined (DAP_OS_WINDOWS)
+    return (unsigned) GetCurrentThreadId();
+#elif defined(DAP_OS_LINUX)
+    return syscall(SYS_gettid);;
+#else
+#error "Not defined dap_gettid() for your platform"
+#endif
+}
+
 const	char spaces[74] = {"                                                                          "};
 #define PID_FMT "%6d"
 
@@ -602,22 +621,6 @@ struct timespec now;
 }
 #endif
 
-unsigned dap_gettid()
-{
-
-#ifdef DAP_OS_BSD
-    uint64_t l_tid = 0;
-    pthread_threadid_np(pthread_self(),&l_tid);
-    return (unsigned) l_tid;
-#elif defined (DAP_OS_WINDOWS)
-    return (unsigned) GetCurrentThreadId();
-#elif defined(DAP_OS_LINUX)
-    return gettid();
-#else
-#error "Not defined dap_gettid() for your platform"
-#endif
-}
-
 static int s_check_and_fill_buffer_log(char **m, struct tm *a_tm_st, char *a_tmp)
 {
 	char *s = *m;
diff --git a/modules/global-db/CMakeLists.txt b/modules/global-db/CMakeLists.txt
index 72c9868c179e09de233703989c4ae2ea855d6e84..43fc3fb4c4dc4af5f829a92e8f85feb9e5994d44 100644
--- a/modules/global-db/CMakeLists.txt
+++ b/modules/global-db/CMakeLists.txt
@@ -23,7 +23,7 @@ file(GLOB DAP_CHAIN_GLOBAL_DB_HDR
 
 add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/cuttdb ${CMAKE_CURRENT_BINARY_DIR}/../../3rdparty/cuttdb)
 if (BUILD_WITH_GDB_DRIVER_MDBX)
-add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/libmdbx ${CMAKE_CURRENT_BINARY_DIR}/../../3rdparty/libmdbx)
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/libmdbx ${CMAKE_CURRENT_BINARY_DIR}/../../3rdparty/libmdbx EXCLUDE_FROM_ALL)
 endif()
 
 set(DAP_CHAIN_GLOBAL_DB_LIBS dap_core dap_io dap_crypto dap_chain dap_chain_net sqlite3 dap_cuttdb json-c)