Commit 0ffef5d2 authored by Sergei Golubchik's avatar Sergei Golubchik

MDEV-8052 abi detection incorrect with clang

don't include #include directives into .pp files
parent 8e7d6652
...@@ -58,7 +58,7 @@ FOREACH(file ${ABI_HEADERS}) ...@@ -58,7 +58,7 @@ FOREACH(file ${ABI_HEADERS})
EXECUTE_PROCESS( EXECUTE_PROCESS(
COMMAND ${COMPILER} COMMAND ${COMPILER}
-E -nostdinc -dI -DMYSQL_ABI_CHECK -I${SOURCE_DIR}/include -E -nostdinc -DMYSQL_ABI_CHECK -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})
......
typedef char my_bool; typedef char my_bool;
typedef int my_socket; typedef int my_socket;
#include "mysql_version.h"
#include "mysql_com.h"
enum enum_server_command enum enum_server_command
{ {
COM_SLEEP, COM_QUIT, COM_INIT_DB, COM_QUERY, COM_FIELD_LIST, COM_SLEEP, COM_QUIT, COM_INIT_DB, COM_QUERY, COM_FIELD_LIST,
...@@ -142,7 +140,6 @@ void get_tty_password_buff(const char *opt_message, char *to, size_t length); ...@@ -142,7 +140,6 @@ 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);
#include "mysql_time.h"
enum enum_mysql_timestamp_type enum enum_mysql_timestamp_type
{ {
MYSQL_TIMESTAMP_NONE= -2, MYSQL_TIMESTAMP_ERROR= -1, MYSQL_TIMESTAMP_NONE= -2, MYSQL_TIMESTAMP_ERROR= -1,
...@@ -155,7 +152,6 @@ typedef struct st_mysql_time ...@@ -155,7 +152,6 @@ 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;
#include "my_list.h"
typedef struct st_list { typedef struct st_list {
struct st_list *prev,*next; struct st_list *prev,*next;
void *data; void *data;
...@@ -197,8 +193,6 @@ typedef struct st_mysql_field { ...@@ -197,8 +193,6 @@ 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;
#include "typelib.h"
#include "my_alloc.h"
typedef struct st_used_mem typedef struct st_used_mem
{ {
struct st_used_mem *next; struct st_used_mem *next;
...@@ -242,7 +236,6 @@ typedef struct st_mysql_rows { ...@@ -242,7 +236,6 @@ typedef struct st_mysql_rows {
unsigned long length; unsigned long length;
} MYSQL_ROWS; } MYSQL_ROWS;
typedef MYSQL_ROWS *MYSQL_ROW_OFFSET; typedef MYSQL_ROWS *MYSQL_ROW_OFFSET;
#include "my_alloc.h"
typedef struct embedded_query_result EMBEDDED_QUERY_RESULT; typedef struct embedded_query_result EMBEDDED_QUERY_RESULT;
typedef struct st_mysql_data { typedef struct st_mysql_data {
MYSQL_ROWS *data; MYSQL_ROWS *data;
......
...@@ -3,7 +3,6 @@ struct st_mysql_client_plugin ...@@ -3,7 +3,6 @@ struct st_mysql_client_plugin
int type; unsigned int interface_version; const char *name; const char *author; const char *desc; unsigned int version[3]; const char *license; void *mysql_api; int (*init)(char *, size_t, int, va_list); int (*deinit)(); int (*options)(const char *option, const void *); int type; unsigned int interface_version; const char *name; const char *author; const char *desc; unsigned int version[3]; const char *license; void *mysql_api; int (*init)(char *, size_t, int, va_list); int (*deinit)(); int (*options)(const char *option, const void *);
}; };
struct st_mysql; struct st_mysql;
#include <mysql/plugin_auth_common.h>
typedef struct st_plugin_vio_info typedef struct st_plugin_vio_info
{ {
enum { MYSQL_VIO_INVALID, MYSQL_VIO_TCP, MYSQL_VIO_SOCKET, enum { MYSQL_VIO_INVALID, MYSQL_VIO_TCP, MYSQL_VIO_SOCKET,
...@@ -24,7 +23,6 @@ struct st_mysql_client_plugin_AUTHENTICATION ...@@ -24,7 +23,6 @@ struct st_mysql_client_plugin_AUTHENTICATION
int type; unsigned int interface_version; const char *name; const char *author; const char *desc; unsigned int version[3]; const char *license; void *mysql_api; int (*init)(char *, size_t, int, va_list); int (*deinit)(); int (*options)(const char *option, const void *); int type; unsigned int interface_version; const char *name; const char *author; const char *desc; unsigned int version[3]; const char *license; void *mysql_api; int (*init)(char *, size_t, int, va_list); int (*deinit)(); int (*options)(const char *option, const void *);
int (*authenticate_user)(MYSQL_PLUGIN_VIO *vio, struct st_mysql *mysql); int (*authenticate_user)(MYSQL_PLUGIN_VIO *vio, struct st_mysql *mysql);
}; };
#include <mysql/auth_dialog_client.h>
struct st_mysql; struct st_mysql;
typedef char *(*mysql_authentication_dialog_ask_t)(struct st_mysql *mysql, typedef char *(*mysql_authentication_dialog_ask_t)(struct st_mysql *mysql,
int type, const char *prompt, char *buf, int buf_len); int type, const char *prompt, char *buf, int buf_len);
......
#include "plugin.h"
#include <mysql/services.h>
#include <mysql/service_my_snprintf.h>
extern struct my_snprintf_service_st { extern struct my_snprintf_service_st {
size_t (*my_snprintf_type)(char*, size_t, const char*, ...); size_t (*my_snprintf_type)(char*, size_t, const char*, ...);
size_t (*my_vsnprintf_type)(char *, size_t, const char*, va_list); size_t (*my_vsnprintf_type)(char *, size_t, const char*, va_list);
} *my_snprintf_service; } *my_snprintf_service;
size_t my_snprintf(char* to, size_t n, const char* fmt, ...); size_t my_snprintf(char* to, size_t n, const char* fmt, ...);
size_t my_vsnprintf(char *to, size_t n, const char* fmt, va_list ap); size_t my_vsnprintf(char *to, size_t n, const char* fmt, va_list ap);
#include <mysql/service_thd_alloc.h>
struct st_mysql_lex_string struct st_mysql_lex_string
{ {
char *str; char *str;
...@@ -31,7 +27,6 @@ void *thd_memdup(void* thd, const void* str, unsigned int size); ...@@ -31,7 +27,6 @@ void *thd_memdup(void* thd, const void* str, unsigned int size);
MYSQL_LEX_STRING *thd_make_lex_string(void* thd, MYSQL_LEX_STRING *lex_str, MYSQL_LEX_STRING *thd_make_lex_string(void* thd, MYSQL_LEX_STRING *lex_str,
const char *str, unsigned int size, const char *str, unsigned int size,
int allocate_lex_string); int allocate_lex_string);
#include <mysql/service_thd_wait.h>
typedef enum _thd_wait_type_e { typedef enum _thd_wait_type_e {
THD_WAIT_SLEEP= 1, THD_WAIT_SLEEP= 1,
THD_WAIT_DISKIO= 2, THD_WAIT_DISKIO= 2,
...@@ -51,7 +46,6 @@ extern struct thd_wait_service_st { ...@@ -51,7 +46,6 @@ extern struct thd_wait_service_st {
} *thd_wait_service; } *thd_wait_service;
void thd_wait_begin(void* thd, int wait_type); void thd_wait_begin(void* thd, int wait_type);
void thd_wait_end(void* thd); void thd_wait_end(void* thd);
#include <mysql/service_thread_scheduler.h>
struct scheduler_functions; struct scheduler_functions;
extern struct my_thread_scheduler_service { extern struct my_thread_scheduler_service {
int (*set)(struct scheduler_functions *scheduler); int (*set)(struct scheduler_functions *scheduler);
...@@ -59,7 +53,6 @@ extern struct my_thread_scheduler_service { ...@@ -59,7 +53,6 @@ extern struct my_thread_scheduler_service {
} *my_thread_scheduler_service; } *my_thread_scheduler_service;
int my_thread_scheduler_set(struct scheduler_functions *scheduler); int my_thread_scheduler_set(struct scheduler_functions *scheduler);
int my_thread_scheduler_reset(); int my_thread_scheduler_reset();
#include <mysql/service_progress_report.h>
extern struct progress_report_service_st { extern struct progress_report_service_st {
void (*thd_progress_init_func)(void* thd, unsigned int max_stage); void (*thd_progress_init_func)(void* thd, unsigned int max_stage);
void (*thd_progress_report_func)(void* thd, void (*thd_progress_report_func)(void* thd,
...@@ -80,9 +73,7 @@ void thd_progress_next_stage(void* thd); ...@@ -80,9 +73,7 @@ void thd_progress_next_stage(void* thd);
void thd_progress_end(void* thd); void thd_progress_end(void* thd);
const char *set_thd_proc_info(void*, const char * info, const char *func, const char *set_thd_proc_info(void*, const char * info, const char *func,
const char *file, unsigned int line); const char *file, unsigned int line);
#include <mysql/service_debug_sync.h>
extern void (*debug_sync_C_callback_ptr)(void*, const char *, size_t); extern void (*debug_sync_C_callback_ptr)(void*, const char *, size_t);
#include <mysql/service_kill_statement.h>
enum thd_kill_levels { enum thd_kill_levels {
THD_IS_NOT_KILLED=0, THD_IS_NOT_KILLED=0,
THD_ABORT_SOFTLY=50, THD_ABORT_SOFTLY=50,
...@@ -92,7 +83,6 @@ extern struct kill_statement_service_st { ...@@ -92,7 +83,6 @@ extern struct kill_statement_service_st {
enum thd_kill_levels (*thd_kill_level_func)(const void*); enum thd_kill_levels (*thd_kill_level_func)(const void*);
} *thd_kill_statement_service; } *thd_kill_statement_service;
enum thd_kill_levels thd_kill_level(const void*); enum thd_kill_levels thd_kill_level(const void*);
#include <mysql/service_logger.h>
typedef struct logger_handle_st LOGGER_HANDLE; typedef struct logger_handle_st LOGGER_HANDLE;
extern struct logger_service_st { extern struct logger_service_st {
void (*logger_init_mutexes)(); void (*logger_init_mutexes)();
...@@ -175,8 +165,6 @@ struct st_maria_plugin ...@@ -175,8 +165,6 @@ struct st_maria_plugin
const char *version_info; const char *version_info;
unsigned int maturity; unsigned int maturity;
}; };
#include "plugin_ftparser.h"
#include "plugin.h"
enum enum_ftparser_mode enum enum_ftparser_mode
{ {
MYSQL_FTPARSER_SIMPLE_MODE= 0, MYSQL_FTPARSER_SIMPLE_MODE= 0,
......
#include <mysql/plugin.h>
#include <mysql/services.h>
#include <mysql/service_my_snprintf.h>
extern struct my_snprintf_service_st { extern struct my_snprintf_service_st {
size_t (*my_snprintf_type)(char*, size_t, const char*, ...); size_t (*my_snprintf_type)(char*, size_t, const char*, ...);
size_t (*my_vsnprintf_type)(char *, size_t, const char*, va_list); size_t (*my_vsnprintf_type)(char *, size_t, const char*, va_list);
} *my_snprintf_service; } *my_snprintf_service;
size_t my_snprintf(char* to, size_t n, const char* fmt, ...); size_t my_snprintf(char* to, size_t n, const char* fmt, ...);
size_t my_vsnprintf(char *to, size_t n, const char* fmt, va_list ap); size_t my_vsnprintf(char *to, size_t n, const char* fmt, va_list ap);
#include <mysql/service_thd_alloc.h>
struct st_mysql_lex_string struct st_mysql_lex_string
{ {
char *str; char *str;
...@@ -31,7 +27,6 @@ void *thd_memdup(void* thd, const void* str, unsigned int size); ...@@ -31,7 +27,6 @@ void *thd_memdup(void* thd, const void* str, unsigned int size);
MYSQL_LEX_STRING *thd_make_lex_string(void* thd, MYSQL_LEX_STRING *lex_str, MYSQL_LEX_STRING *thd_make_lex_string(void* thd, MYSQL_LEX_STRING *lex_str,
const char *str, unsigned int size, const char *str, unsigned int size,
int allocate_lex_string); int allocate_lex_string);
#include <mysql/service_thd_wait.h>
typedef enum _thd_wait_type_e { typedef enum _thd_wait_type_e {
THD_WAIT_SLEEP= 1, THD_WAIT_SLEEP= 1,
THD_WAIT_DISKIO= 2, THD_WAIT_DISKIO= 2,
...@@ -51,7 +46,6 @@ extern struct thd_wait_service_st { ...@@ -51,7 +46,6 @@ extern struct thd_wait_service_st {
} *thd_wait_service; } *thd_wait_service;
void thd_wait_begin(void* thd, int wait_type); void thd_wait_begin(void* thd, int wait_type);
void thd_wait_end(void* thd); void thd_wait_end(void* thd);
#include <mysql/service_thread_scheduler.h>
struct scheduler_functions; struct scheduler_functions;
extern struct my_thread_scheduler_service { extern struct my_thread_scheduler_service {
int (*set)(struct scheduler_functions *scheduler); int (*set)(struct scheduler_functions *scheduler);
...@@ -59,7 +53,6 @@ extern struct my_thread_scheduler_service { ...@@ -59,7 +53,6 @@ extern struct my_thread_scheduler_service {
} *my_thread_scheduler_service; } *my_thread_scheduler_service;
int my_thread_scheduler_set(struct scheduler_functions *scheduler); int my_thread_scheduler_set(struct scheduler_functions *scheduler);
int my_thread_scheduler_reset(); int my_thread_scheduler_reset();
#include <mysql/service_progress_report.h>
extern struct progress_report_service_st { extern struct progress_report_service_st {
void (*thd_progress_init_func)(void* thd, unsigned int max_stage); void (*thd_progress_init_func)(void* thd, unsigned int max_stage);
void (*thd_progress_report_func)(void* thd, void (*thd_progress_report_func)(void* thd,
...@@ -80,9 +73,7 @@ void thd_progress_next_stage(void* thd); ...@@ -80,9 +73,7 @@ void thd_progress_next_stage(void* thd);
void thd_progress_end(void* thd); void thd_progress_end(void* thd);
const char *set_thd_proc_info(void*, const char * info, const char *func, const char *set_thd_proc_info(void*, const char * info, const char *func,
const char *file, unsigned int line); const char *file, unsigned int line);
#include <mysql/service_debug_sync.h>
extern void (*debug_sync_C_callback_ptr)(void*, const char *, size_t); extern void (*debug_sync_C_callback_ptr)(void*, const char *, size_t);
#include <mysql/service_kill_statement.h>
enum thd_kill_levels { enum thd_kill_levels {
THD_IS_NOT_KILLED=0, THD_IS_NOT_KILLED=0,
THD_ABORT_SOFTLY=50, THD_ABORT_SOFTLY=50,
...@@ -92,7 +83,6 @@ extern struct kill_statement_service_st { ...@@ -92,7 +83,6 @@ extern struct kill_statement_service_st {
enum thd_kill_levels (*thd_kill_level_func)(const void*); enum thd_kill_levels (*thd_kill_level_func)(const void*);
} *thd_kill_statement_service; } *thd_kill_statement_service;
enum thd_kill_levels thd_kill_level(const void*); enum thd_kill_levels thd_kill_level(const void*);
#include <mysql/service_logger.h>
typedef struct logger_handle_st LOGGER_HANDLE; typedef struct logger_handle_st LOGGER_HANDLE;
extern struct logger_service_st { extern struct logger_service_st {
void (*logger_init_mutexes)(); void (*logger_init_mutexes)();
...@@ -175,8 +165,6 @@ struct st_maria_plugin ...@@ -175,8 +165,6 @@ struct st_maria_plugin
const char *version_info; const char *version_info;
unsigned int maturity; unsigned int maturity;
}; };
#include "plugin_ftparser.h"
#include "plugin.h"
enum enum_ftparser_mode enum enum_ftparser_mode
{ {
MYSQL_FTPARSER_SIMPLE_MODE= 0, MYSQL_FTPARSER_SIMPLE_MODE= 0,
...@@ -266,7 +254,6 @@ void mysql_query_cache_invalidate4(void* thd, ...@@ -266,7 +254,6 @@ void mysql_query_cache_invalidate4(void* thd,
void *thd_get_ha_data(const void* thd, const struct handlerton *hton); void *thd_get_ha_data(const void* thd, const struct handlerton *hton);
void thd_set_ha_data(void* thd, const struct handlerton *hton, void thd_set_ha_data(void* thd, const struct handlerton *hton,
const void *ha_data); const void *ha_data);
#include <mysql/plugin_auth_common.h>
typedef struct st_plugin_vio_info typedef struct st_plugin_vio_info
{ {
enum { MYSQL_VIO_INVALID, MYSQL_VIO_TCP, MYSQL_VIO_SOCKET, enum { MYSQL_VIO_INVALID, MYSQL_VIO_TCP, MYSQL_VIO_SOCKET,
......
#include "plugin.h"
#include <mysql/services.h>
#include <mysql/service_my_snprintf.h>
extern struct my_snprintf_service_st { extern struct my_snprintf_service_st {
size_t (*my_snprintf_type)(char*, size_t, const char*, ...); size_t (*my_snprintf_type)(char*, size_t, const char*, ...);
size_t (*my_vsnprintf_type)(char *, size_t, const char*, va_list); size_t (*my_vsnprintf_type)(char *, size_t, const char*, va_list);
} *my_snprintf_service; } *my_snprintf_service;
size_t my_snprintf(char* to, size_t n, const char* fmt, ...); size_t my_snprintf(char* to, size_t n, const char* fmt, ...);
size_t my_vsnprintf(char *to, size_t n, const char* fmt, va_list ap); size_t my_vsnprintf(char *to, size_t n, const char* fmt, va_list ap);
#include <mysql/service_thd_alloc.h>
struct st_mysql_lex_string struct st_mysql_lex_string
{ {
char *str; char *str;
...@@ -31,7 +27,6 @@ void *thd_memdup(void* thd, const void* str, unsigned int size); ...@@ -31,7 +27,6 @@ void *thd_memdup(void* thd, const void* str, unsigned int size);
MYSQL_LEX_STRING *thd_make_lex_string(void* thd, MYSQL_LEX_STRING *lex_str, MYSQL_LEX_STRING *thd_make_lex_string(void* thd, MYSQL_LEX_STRING *lex_str,
const char *str, unsigned int size, const char *str, unsigned int size,
int allocate_lex_string); int allocate_lex_string);
#include <mysql/service_thd_wait.h>
typedef enum _thd_wait_type_e { typedef enum _thd_wait_type_e {
THD_WAIT_SLEEP= 1, THD_WAIT_SLEEP= 1,
THD_WAIT_DISKIO= 2, THD_WAIT_DISKIO= 2,
...@@ -51,7 +46,6 @@ extern struct thd_wait_service_st { ...@@ -51,7 +46,6 @@ extern struct thd_wait_service_st {
} *thd_wait_service; } *thd_wait_service;
void thd_wait_begin(void* thd, int wait_type); void thd_wait_begin(void* thd, int wait_type);
void thd_wait_end(void* thd); void thd_wait_end(void* thd);
#include <mysql/service_thread_scheduler.h>
struct scheduler_functions; struct scheduler_functions;
extern struct my_thread_scheduler_service { extern struct my_thread_scheduler_service {
int (*set)(struct scheduler_functions *scheduler); int (*set)(struct scheduler_functions *scheduler);
...@@ -59,7 +53,6 @@ extern struct my_thread_scheduler_service { ...@@ -59,7 +53,6 @@ extern struct my_thread_scheduler_service {
} *my_thread_scheduler_service; } *my_thread_scheduler_service;
int my_thread_scheduler_set(struct scheduler_functions *scheduler); int my_thread_scheduler_set(struct scheduler_functions *scheduler);
int my_thread_scheduler_reset(); int my_thread_scheduler_reset();
#include <mysql/service_progress_report.h>
extern struct progress_report_service_st { extern struct progress_report_service_st {
void (*thd_progress_init_func)(void* thd, unsigned int max_stage); void (*thd_progress_init_func)(void* thd, unsigned int max_stage);
void (*thd_progress_report_func)(void* thd, void (*thd_progress_report_func)(void* thd,
...@@ -80,9 +73,7 @@ void thd_progress_next_stage(void* thd); ...@@ -80,9 +73,7 @@ void thd_progress_next_stage(void* thd);
void thd_progress_end(void* thd); void thd_progress_end(void* thd);
const char *set_thd_proc_info(void*, const char * info, const char *func, const char *set_thd_proc_info(void*, const char * info, const char *func,
const char *file, unsigned int line); const char *file, unsigned int line);
#include <mysql/service_debug_sync.h>
extern void (*debug_sync_C_callback_ptr)(void*, const char *, size_t); extern void (*debug_sync_C_callback_ptr)(void*, const char *, size_t);
#include <mysql/service_kill_statement.h>
enum thd_kill_levels { enum thd_kill_levels {
THD_IS_NOT_KILLED=0, THD_IS_NOT_KILLED=0,
THD_ABORT_SOFTLY=50, THD_ABORT_SOFTLY=50,
...@@ -92,7 +83,6 @@ extern struct kill_statement_service_st { ...@@ -92,7 +83,6 @@ extern struct kill_statement_service_st {
enum thd_kill_levels (*thd_kill_level_func)(const void*); enum thd_kill_levels (*thd_kill_level_func)(const void*);
} *thd_kill_statement_service; } *thd_kill_statement_service;
enum thd_kill_levels thd_kill_level(const void*); enum thd_kill_levels thd_kill_level(const void*);
#include <mysql/service_logger.h>
typedef struct logger_handle_st LOGGER_HANDLE; typedef struct logger_handle_st LOGGER_HANDLE;
extern struct logger_service_st { extern struct logger_service_st {
void (*logger_init_mutexes)(); void (*logger_init_mutexes)();
...@@ -175,7 +165,6 @@ struct st_maria_plugin ...@@ -175,7 +165,6 @@ struct st_maria_plugin
const char *version_info; const char *version_info;
unsigned int maturity; unsigned int maturity;
}; };
#include "plugin_ftparser.h"
struct st_mysql_daemon struct st_mysql_daemon
{ {
int interface_version; int interface_version;
......
#include "mysql/psi/psi.h"
C_MODE_START C_MODE_START
struct PSI_mutex; struct PSI_mutex;
struct PSI_rwlock; struct PSI_rwlock;
......
#include "mysql/psi/psi.h"
C_MODE_START C_MODE_START
struct PSI_mutex; struct PSI_mutex;
struct PSI_rwlock; struct PSI_rwlock;
......
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