diff --git a/sql/log.cc b/sql/log.cc
index db592649d134d5d769dfdb8599d1c61725ce1e7e..e69c0af15bdbe03866955abe5872d1df9e9f582f 100644
--- a/sql/log.cc
+++ b/sql/log.cc
@@ -2370,7 +2370,7 @@ void sql_print_information(const char *format, ...)
   DBUG_VOID_RETURN;
 }
 
-#ifdef HAVE_MMAP
+
 /********* transaction coordinator log for 2pc - mmap() based solution *******/
 
 /*
@@ -2408,13 +2408,17 @@ void sql_print_information(const char *format, ...)
   new xid is added into it. Removing a xid from a page does not make it
   dirty - we don't sync removals to disk.
 */
+
+ulong tc_log_page_waits= 0;
+
+#ifdef HAVE_MMAP
+
 #define TC_LOG_HEADER_SIZE (sizeof(tc_log_magic)+1)
 
 static const char tc_log_magic[]={(char) 254, 0x23, 0x05, 0x74};
 
 ulong opt_tc_log_size= TC_LOG_MIN_SIZE;
-ulong tc_log_max_pages_used=0, tc_log_page_size=0,
-      tc_log_page_waits=0, tc_log_cur_pages_used=0;
+ulong tc_log_max_pages_used=0, tc_log_page_size=0, tc_log_cur_pages_used=0;
 
 int TC_LOG_MMAP::open(const char *opt_name)
 {
diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h
index cf60a33e70d6532cfd0fedde8bb410b4c329f4b4..e8ec1b69959f6576188ba89c3552b937bd633c21 100644
--- a/sql/mysql_priv.h
+++ b/sql/mysql_priv.h
@@ -1083,6 +1083,8 @@ extern ulong rpl_recovery_rank, thread_cache_size;
 extern ulong back_log;
 extern ulong specialflag, current_pid;
 extern ulong expire_logs_days, sync_binlog_period, sync_binlog_counter;
+extern ulong opt_tc_log_size, tc_log_max_pages_used, tc_log_page_size;
+extern ulong tc_log_page_waits;
 extern my_bool relay_log_purge, opt_innodb_safe_binlog, opt_innodb;
 extern uint test_flags,select_errors,ha_open_options;
 extern uint protocol_version, mysqld_port, dropping_tables;
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index a0c35b58a4dcce5c7af0c4f65f95aaec5d7b77d8..aeea9c1e88a2e6d39b0afb2e1c3e12b85092c267 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -4671,9 +4671,11 @@ Disable with --skip-innodb-doublewrite.", (gptr*) &innobase_use_doublewrite,
    "more than one storage engine, when binary log is disabled)",
    (gptr*) &opt_tc_log_file, (gptr*) &opt_tc_log_file, 0, GET_STR,
    REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+#ifdef HAVE_MMAP
   {"log-tc-size", OPT_LOG_TC_SIZE, "Size of transaction coordinator log.",
    (gptr*) &opt_tc_log_size, (gptr*) &opt_tc_log_size, 0, GET_ULONG,
    REQUIRED_ARG, TC_LOG_MIN_SIZE, TC_LOG_MIN_SIZE, ~0L, 0, TC_LOG_PAGE_SIZE, 0},
+#endif
   {"log-update", OPT_UPDATE_LOG,
    "The update log is deprecated since version 5.0, is replaced by the binary \
 log and this option justs turns on --log-bin instead.",
@@ -5815,9 +5817,11 @@ struct show_var_st status_vars[]= {
 #endif /* HAVE_OPENSSL */
   {"Table_locks_immediate",    (char*) &locks_immediate,        SHOW_LONG},
   {"Table_locks_waited",       (char*) &locks_waited,           SHOW_LONG},
+#ifdef HAVE_MMAP
   {"Tc_log_max_pages_used",    (char*) &tc_log_max_pages_used,  SHOW_LONG},
   {"Tc_log_page_size",         (char*) &tc_log_page_size,       SHOW_LONG},
   {"Tc_log_page_waits",        (char*) &tc_log_page_waits,      SHOW_LONG},
+#endif
   {"Threads_cached",           (char*) &cached_thread_count,    SHOW_LONG_CONST},
   {"Threads_connected",        (char*) &thread_count,           SHOW_INT_CONST},
   {"Threads_created",	       (char*) &thread_created,		SHOW_LONG_CONST},
diff --git a/sql/sql_class.h b/sql/sql_class.h
index a042ce58d27174cc5a8d3344311265629ad37d08..b01567a671fc7fca4e5e990d822d13c4bfcb3bb9 100644
--- a/sql/sql_class.h
+++ b/sql/sql_class.h
@@ -45,10 +45,6 @@ extern const char **errmesg;
 
 #define TC_LOG_PAGE_SIZE   8192
 #define TC_LOG_MIN_SIZE    (3*TC_LOG_PAGE_SIZE)
-extern ulong opt_tc_log_size;
-extern ulong tc_log_max_pages_used;
-extern ulong tc_log_page_size;
-extern ulong tc_log_page_waits;
 
 #define TC_HEURISTIC_RECOVER_COMMIT   1
 #define TC_HEURISTIC_RECOVER_ROLLBACK 2