summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVarun Gupta <varunraiko1803@gmail.com>2017-09-05 23:00:59 +0530
committerVarun Gupta <varunraiko1803@gmail.com>2017-09-05 23:00:59 +0530
commit80c90887fe952016df86abb6afd9aae02cfcaead (patch)
tree7cf6490e53414856edd315f171c59e6e591ff6e1
parent4ae200a97a62ece765e940d8acb01cf1ada9de24 (diff)
downloadmariadb-git-80c90887fe952016df86abb6afd9aae02cfcaead.tar.gz
MDEV-13585: RocksDB plugin fails to build on macOS because of unknown type `timer_t` etc.
Rdb_io_watchdog can not be built on OS X. Disable it.
-rw-r--r--storage/rocksdb/CMakeLists.txt9
-rw-r--r--storage/rocksdb/ha_rocksdb.cc10
-rw-r--r--storage/rocksdb/rdb_io_watchdog.cc2
-rw-r--r--storage/rocksdb/rdb_io_watchdog.h2
4 files changed, 14 insertions, 9 deletions
diff --git a/storage/rocksdb/CMakeLists.txt b/storage/rocksdb/CMakeLists.txt
index 5db6d888bb6..6db82119b45 100644
--- a/storage/rocksdb/CMakeLists.txt
+++ b/storage/rocksdb/CMakeLists.txt
@@ -146,7 +146,10 @@ ADD_CONVENIENCE_LIBRARY(rocksdb_aux_lib
ADD_DEPENDENCIES(rocksdb_aux_lib GenError)
# MARIAROCKS-TODO: how to properly depend on -lrt ?
-TARGET_LINK_LIBRARIES(rocksdb_aux_lib rocksdblib ${ZLIB_LIBRARY} -lrt)
+TARGET_LINK_LIBRARIES(rocksdb_aux_lib rocksdblib ${ZLIB_LIBRARY})
+if (UNIX AND NOT APPLE)
+ TARGET_LINK_LIBRARIES(rocksdb_aux_lib -lrt)
+endif()
TARGET_LINK_LIBRARIES(rocksdb rocksdb_aux_lib)
@@ -182,7 +185,9 @@ ENDIF()
# ADD_SUBDIRECTORY(unittest)
#ENDIF()
-SET(rocksdb_static_libs ${rocksdb_static_libs} "-lrt")
+if (UNIX AND NOT APPLE)
+ SET(rocksdb_static_libs ${rocksdb_static_libs} "-lrt")
+endif()
ADD_LIBRARY(rocksdb_tools STATIC
rocksdb/tools/ldb_tool.cc
diff --git a/storage/rocksdb/ha_rocksdb.cc b/storage/rocksdb/ha_rocksdb.cc
index 293d995126a..9868bbc926d 100644
--- a/storage/rocksdb/ha_rocksdb.cc
+++ b/storage/rocksdb/ha_rocksdb.cc
@@ -173,7 +173,7 @@ Rdb_ddl_manager ddl_manager;
const char *m_mysql_gtid;
Rdb_binlog_manager binlog_manager;
-#ifndef _WIN32
+#if !defined(_WIN32) && !defined(__APPLE__)
Rdb_io_watchdog *io_watchdog = nullptr;
#endif
/**
@@ -554,7 +554,7 @@ static void rocksdb_set_io_write_timeout(
void *const var_ptr MY_ATTRIBUTE((__unused__)), const void *const save) {
DBUG_ASSERT(save != nullptr);
DBUG_ASSERT(rdb != nullptr);
-#ifndef _WIN32
+#if !defined(_WIN32) && !defined(__APPLE__)
DBUG_ASSERT(io_watchdog != nullptr);
#endif
@@ -563,7 +563,7 @@ static void rocksdb_set_io_write_timeout(
const uint32_t new_val = *static_cast<const uint32_t *>(save);
rocksdb_io_write_timeout_secs = new_val;
-#ifndef _WIN32
+#if !defined(_WIN32) && !defined(__APPLE__)
io_watchdog->reset_timeout(rocksdb_io_write_timeout_secs);
#endif
RDB_MUTEX_UNLOCK_CHECK(rdb_sysvars_mutex);
@@ -3984,7 +3984,7 @@ static int rocksdb_init_func(void *const p) {
directories.push_back(myrocks::rocksdb_wal_dir);
}
-#ifndef _WIN32
+#if !defined(_WIN32) && !defined(__APPLE__)
io_watchdog = new Rdb_io_watchdog(directories);
io_watchdog->reset_timeout(rocksdb_io_write_timeout_secs);
#endif
@@ -4076,7 +4076,7 @@ static int rocksdb_done_func(void *const p) {
delete commit_latency_stats;
commit_latency_stats = nullptr;
-#ifndef _WIN32
+#if !defined(_WIN32) && !defined(__APPLE__)
delete io_watchdog;
io_watchdog = nullptr;
#endif
diff --git a/storage/rocksdb/rdb_io_watchdog.cc b/storage/rocksdb/rdb_io_watchdog.cc
index a599ba58aec..b41e9248d52 100644
--- a/storage/rocksdb/rdb_io_watchdog.cc
+++ b/storage/rocksdb/rdb_io_watchdog.cc
@@ -22,7 +22,7 @@
#include <vector>
/* Rdb_io_watchdog doesn't work on Windows [yet] */
-#ifndef _WIN32
+#if !defined(_WIN32) && !defined(__APPLE__)
namespace myrocks {
diff --git a/storage/rocksdb/rdb_io_watchdog.h b/storage/rocksdb/rdb_io_watchdog.h
index de8c1b9500e..c50547745df 100644
--- a/storage/rocksdb/rdb_io_watchdog.h
+++ b/storage/rocksdb/rdb_io_watchdog.h
@@ -35,7 +35,7 @@
namespace myrocks {
// Rdb_io_watchdog does not support Windows ATM.
-#ifndef _WIN32
+#if !defined(_WIN32) && !defined(__APPLE__)
class Rdb_io_watchdog {
const int RDB_IO_WRITE_BUFFER_SIZE = 4096;