Commit c8e94e5e authored by Alexander Barkov's avatar Alexander Barkov

Adding -D__cplusplus into the ABI check command line

This will allow to check ABI for C++ plugins defined in include/mysql/plugin.h
e.g. like this:

struct st_mysql_xxx
{
 int interface_version;
 const class XXX *xxx;
};

Discussed with Serg.
parent 265a7d16
...@@ -58,7 +58,8 @@ FOREACH(file ${ABI_HEADERS}) ...@@ -58,7 +58,8 @@ FOREACH(file ${ABI_HEADERS})
EXECUTE_PROCESS( EXECUTE_PROCESS(
COMMAND ${COMPILER} COMMAND ${COMPILER}
-E -nostdinc -DMYSQL_ABI_CHECK -I${SOURCE_DIR}/include -E -nostdinc -DMYSQL_ABI_CHECK -D__cplusplus
-I${SOURCE_DIR}/include
-I${BINARY_DIR}/include -I${SOURCE_DIR}/include/mysql -I${SOURCE_DIR}/sql -I${BINARY_DIR}/include -I${SOURCE_DIR}/include/mysql -I${SOURCE_DIR}/sql
${file} ${file}
ERROR_QUIET OUTPUT_FILE ${tmpfile}) ERROR_QUIET OUTPUT_FILE ${tmpfile})
......
extern "C" {
typedef char my_bool; typedef char my_bool;
typedef int my_socket; typedef int my_socket;
enum enum_server_command enum enum_server_command
...@@ -109,6 +110,7 @@ enum enum_session_state_type ...@@ -109,6 +110,7 @@ enum enum_session_state_type
SESSION_TRACK_TRANSACTION_STATE, SESSION_TRACK_TRANSACTION_STATE,
SESSION_TRACK_always_at_the_end SESSION_TRACK_always_at_the_end
}; };
extern "C" {
my_bool my_net_init(NET *net, Vio* vio, void *thd, unsigned int my_flags); my_bool my_net_init(NET *net, Vio* vio, void *thd, unsigned int my_flags);
void my_net_local_init(NET *net); void my_net_local_init(NET *net);
void net_end(NET *net); void net_end(NET *net);
...@@ -127,6 +129,7 @@ struct sockaddr; ...@@ -127,6 +129,7 @@ struct sockaddr;
int my_connect(my_socket s, const struct sockaddr *name, unsigned int namelen, int my_connect(my_socket s, const struct sockaddr *name, unsigned int namelen,
unsigned int timeout); unsigned int timeout);
struct my_rnd_struct; struct my_rnd_struct;
}
enum Item_result enum Item_result
{ {
STRING_RESULT=0, REAL_RESULT, INT_RESULT, ROW_RESULT, DECIMAL_RESULT, STRING_RESULT=0, REAL_RESULT, INT_RESULT, ROW_RESULT, DECIMAL_RESULT,
...@@ -152,6 +155,7 @@ typedef struct st_udf_init ...@@ -152,6 +155,7 @@ typedef struct st_udf_init
my_bool const_item; my_bool const_item;
void *extension; void *extension;
} UDF_INIT; } UDF_INIT;
extern "C" {
void create_random_string(char *to, unsigned int length, void create_random_string(char *to, unsigned int length,
struct my_rnd_struct *rand_st); struct my_rnd_struct *rand_st);
void hash_password(unsigned long *to, const char *password, unsigned int password_len); void hash_password(unsigned long *to, const char *password, unsigned int password_len);
...@@ -171,6 +175,7 @@ void get_tty_password_buff(const char *opt_message, char *to, size_t length); ...@@ -171,6 +175,7 @@ void get_tty_password_buff(const char *opt_message, char *to, size_t length);
const char *mysql_errno_to_sqlstate(unsigned int mysql_errno); const char *mysql_errno_to_sqlstate(unsigned int mysql_errno);
my_bool my_thread_init(void); my_bool my_thread_init(void);
void my_thread_end(void); void my_thread_end(void);
}
typedef long my_time_t; typedef long my_time_t;
enum enum_mysql_timestamp_type enum enum_mysql_timestamp_type
{ {
...@@ -184,6 +189,7 @@ typedef struct st_mysql_time ...@@ -184,6 +189,7 @@ typedef struct st_mysql_time
my_bool neg; my_bool neg;
enum enum_mysql_timestamp_type time_type; enum enum_mysql_timestamp_type time_type;
} MYSQL_TIME; } MYSQL_TIME;
extern "C" {
typedef struct st_list { typedef struct st_list {
struct st_list *prev,*next; struct st_list *prev,*next;
void *data; void *data;
...@@ -196,6 +202,7 @@ extern LIST *list_reverse(LIST *root); ...@@ -196,6 +202,7 @@ extern LIST *list_reverse(LIST *root);
extern void list_free(LIST *root,unsigned int free_data); extern void list_free(LIST *root,unsigned int free_data);
extern unsigned int list_length(LIST *); extern unsigned int list_length(LIST *);
extern int list_walk(LIST *,list_walk_action action,unsigned char * argument); extern int list_walk(LIST *,list_walk_action action,unsigned char * argument);
}
extern unsigned int mariadb_deinitialize_ssl; extern unsigned int mariadb_deinitialize_ssl;
extern unsigned int mysql_port; extern unsigned int mysql_port;
extern char *mysql_unix_port; extern char *mysql_unix_port;
...@@ -225,6 +232,7 @@ typedef struct st_mysql_field { ...@@ -225,6 +232,7 @@ typedef struct st_mysql_field {
typedef char **MYSQL_ROW; typedef char **MYSQL_ROW;
typedef unsigned int MYSQL_FIELD_OFFSET; typedef unsigned int MYSQL_FIELD_OFFSET;
typedef unsigned long long my_ulonglong; typedef unsigned long long my_ulonglong;
extern "C" {
typedef struct st_used_mem typedef struct st_used_mem
{ {
struct st_used_mem *next; struct st_used_mem *next;
...@@ -244,6 +252,7 @@ typedef struct st_mem_root ...@@ -244,6 +252,7 @@ typedef struct st_mem_root
void (*error_handler)(void); void (*error_handler)(void);
const char *name; const char *name;
} MEM_ROOT; } MEM_ROOT;
}
typedef struct st_typelib { typedef struct st_typelib {
unsigned int count; unsigned int count;
const char *name; const char *name;
...@@ -770,3 +779,4 @@ unsigned int mysql_get_timeout_value(const MYSQL *mysql); ...@@ -770,3 +779,4 @@ unsigned int mysql_get_timeout_value(const MYSQL *mysql);
unsigned int mysql_get_timeout_value_ms(const MYSQL *mysql); unsigned int mysql_get_timeout_value_ms(const MYSQL *mysql);
unsigned long mysql_net_read_packet(MYSQL *mysql); unsigned long mysql_net_read_packet(MYSQL *mysql);
unsigned long mysql_net_field_length(unsigned char **packet); unsigned long mysql_net_field_length(unsigned char **packet);
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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