Commit b09c5887 authored by Vladislav Vaintroub's avatar Vladislav Vaintroub

MDEV-20525 rocksdb debug compilation fails on Windows due to unresolved my_assert variable

MYSQL_PLUGIN_IMPORT did not work correctly for the Rocksdb helper library
rocksdb_aux_lib, because that library was not compiled with
-DMYSQL_DYNAMIC_PLUGIN.

Fix dbug such that it does not depend on exported data, only on functions
(which do not need MYSQL_PLUGIN_IMPORT decoration)

Use a "getter" function _db_my_assert() instead of DLL-exported variable.
parent 4081b7b2
......@@ -2258,6 +2258,11 @@ static int default_my_dbug_sanity(void)
return 0;
}
extern my_bool my_assert;
my_bool _db_my_assert(void)
{
return my_assert;
}
#else
/*
......
......@@ -35,7 +35,6 @@ struct _db_stack_frame_ {
};
struct _db_code_state_;
extern MYSQL_PLUGIN_IMPORT my_bool my_assert;
extern my_bool _dbug_on_;
extern my_bool _db_keyword_(struct _db_code_state_ *, const char *, int);
extern int _db_explain_(struct _db_code_state_ *cs, char *buf, size_t len);
......@@ -59,6 +58,7 @@ extern void _db_dump_(uint _line_,const char *keyword,
extern void _db_end_(void);
extern void _db_lock_file_(void);
extern void _db_unlock_file_(void);
extern my_bool _db_my_assert(void);
extern FILE *_db_fp_(void);
extern void _db_flush_(void);
extern void dbug_swap_code_state(void **code_state_store);
......@@ -105,7 +105,7 @@ extern int (*dbug_sanity)(void);
#define DBUG_LOCK_FILE _db_lock_file_()
#define DBUG_UNLOCK_FILE _db_unlock_file_()
#define DBUG_ASSERT(A) do { if (!(A)) { _db_flush_(); \
if (my_assert) assert(A); \
if (_db_my_assert()) assert(A); \
else fprintf(stderr, "%s:%d: assert: %s\n", __FILE__, __LINE__, #A); \
}} while (0)
#define DBUG_SLOW_ASSERT(A) DBUG_ASSERT(A)
......
......@@ -266,7 +266,7 @@ extern ulong my_sync_count;
extern uint mysys_usage_id;
extern int32 my_file_opened;
extern my_bool my_init_done, my_thr_key_mysys_exists;
extern MYSQL_PLUGIN_IMPORT my_bool my_assert;
extern my_bool my_assert;
extern my_bool my_assert_on_error;
extern myf my_global_flags; /* Set to MY_WME for more error messages */
/* Point to current my_message() */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment