From c238e9b96ab3660656ce440ed55f6380caa0f56b Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Sat, 4 Apr 2020 13:27:43 +1100 Subject: [PATCH] MDEV-20685: compile fixes for Solaris/OSX/AIX sig_return: Solaris/OSX returns different function ptr Move defination to my_alarm.h as its the only use. prevents compile warnings (copied from 10.3 branch) mysys/my_sync.c:136:19: error: 'cur_dir_name' defined but not used [-Werror=unused-const-variable=] 136 | static const char cur_dir_name[]= {FN_CURLIB, 0}; | ^~~~~~~~~~~~ fix compile error (DEPRECATED) leaked from ssl headers. In file included from /export/home/dan/mariadb-server-10.4/sql/sys_vars.cc:37: /export/home/dan/mariadb-server-10.4/sql/sys_vars.ic:69: error: "DEPRECATED" redefined [-Werror] 69 | #define DEPRECATED(X) X | In file included from /export/home/dan/mariadb-server-10.4/include/violite.h:150, from /export/home/dan/mariadb-server-10.4/sql/sql_class.h:38, from /export/home/dan/mariadb-server-10.4/sql/sys_vars.cc:36: /usr/include/openssl/ssl.h:2356: note: this is the location of the previous definition 2356 | # define DEPRECATED __attribute__((deprecated)) | Avoid Werror condition on non-Linux: plugin/server_audit/server_audit.c:2267:7: error: variable 'db_len_off' set but not used [-Werror=unused-but-set-variable] 2267 | int db_len_off; | ^~~~~~~~~~ plugin/server_audit/server_audit.c:2266:7: error: variable 'db_off' set but not used [-Werror=unused-but-set-variable] 2266 | int db_off; | ^~~~~~ auth_gssapi fix include path for Solaris Consistent with the upstream packaged patch: https://github.com/OpenIndiana/oi-userland/blob/oi/hipster/components/database/mariadb-103/patches/06-gssapi.h.patch compile warnings on Solaris [ 91%] Building C object plugin/server_audit/CMakeFiles/server_audit.dir/server_audit.c.o /plugin/server_audit/server_audit.c: In function 'auditing_v8': /plugin/server_audit/server_audit.c:2194:20: error: unused variable 'db_len_off' [-Werror=unused-variable] 2194 | static const int db_len_off= 128; | ^~~~~~~~~~ /plugin/server_audit/server_audit.c:2193:20: error: unused variable 'db_off' [-Werror=unused-variable] 2193 | static const int db_off= 120; | ^~~~~~ /plugin/server_audit/server_audit.c:2192:20: error: unused variable 'cmd_off' [-Werror=unused-variable] 2192 | static const int cmd_off= 4432; | ^~~~~~~ At top level: /plugin/server_audit/server_audit.c:2192:20: error: 'cmd_off' defined but not used [-Werror=unused-const-variable=] /plugin/server_audit/server_audit.c:2193:20: error: 'db_off' defined but not used [-Werror=unused-const-variable=] 2193 | static const int db_off= 120; | ^~~~~~ /plugin/server_audit/server_audit.c:2194:20: error: 'db_len_off' defined but not used [-Werror=unused-const-variable=] 2194 | static const int db_len_off= 128; | ^~~~~~~~~~ cc1: all warnings being treated as errors tested on: $ uname -a SunOS openindiana 5.11 illumos-b97b1727bc i86pc i386 i86pc --- include/my_alarm.h | 7 +++++++ include/my_global.h | 7 ------- include/violite.h | 3 +++ mysys/my_sync.c | 3 +-- plugin/auth_gssapi/gssapi_errmsg.cc | 4 ++++ plugin/server_audit/server_audit.c | 4 +++- sql/sql_parse.cc | 3 ++- 7 files changed, 20 insertions(+), 11 deletions(-) diff --git a/include/my_alarm.h b/include/my_alarm.h index 6010da6e2c3..bc0004476ca 100644 --- a/include/my_alarm.h +++ b/include/my_alarm.h @@ -29,6 +29,13 @@ extern ulong my_time_to_wait_for_lock; #if defined(HAVE_ALARM) && !defined(NO_ALARM_LOOP) #include +#ifdef HAVE_SIGHANDLER_T +#define sig_return sighandler_t +#elif defined(SOLARIS) || defined(__sun) || defined(__APPLE__) +typedef void (*sig_return)(int); /* Returns type from signal */ +#else +typedef void (*sig_return)(void); /* Returns type from signal */ +#endif #define ALARM_VARIABLES uint alarm_old=0; \ sig_return alarm_signal=0 #define ALARM_INIT my_have_got_alarm=0 ; \ diff --git a/include/my_global.h b/include/my_global.h index 8103f82a7e2..5e96400eac1 100644 --- a/include/my_global.h +++ b/include/my_global.h @@ -531,13 +531,6 @@ typedef int my_socket; /* File descriptor for sockets */ #endif /* Type for fuctions that handles signals */ #define sig_handler RETSIGTYPE -C_MODE_START -#ifdef HAVE_SIGHANDLER_T -#define sig_return sighandler_t -#else -typedef void (*sig_return)(void); /* Returns type from signal */ -#endif -C_MODE_END #if defined(__GNUC__) && !defined(_lint) typedef char pchar; /* Mixed prototypes can take char */ typedef char puchar; /* Mixed prototypes can take char */ diff --git a/include/violite.h b/include/violite.h index 45273ac5f24..b9ab7aeb99a 100644 --- a/include/violite.h +++ b/include/violite.h @@ -138,6 +138,9 @@ typedef my_socket YASSL_SOCKET_T; #define YASSL_SOCKET_T_DEFINED #include #include +#ifdef DEPRECATED +#undef DEPRECATED +#endif enum enum_ssl_init_error { diff --git a/mysys/my_sync.c b/mysys/my_sync.c index 2ed62e4541a..5a21a511dda 100644 --- a/mysys/my_sync.c +++ b/mysys/my_sync.c @@ -133,8 +133,6 @@ int my_sync(File fd, myf my_flags) } /* my_sync */ -static const char cur_dir_name[]= {FN_CURLIB, 0}; - /* Force directory information to disk. @@ -151,6 +149,7 @@ int my_sync_dir(const char *dir_name __attribute__((unused)), myf my_flags __attribute__((unused))) { #ifdef NEED_EXPLICIT_SYNC_DIR + static const char cur_dir_name[]= {FN_CURLIB, 0}; File dir_fd; int res= 0; const char *correct_dir_name; diff --git a/plugin/auth_gssapi/gssapi_errmsg.cc b/plugin/auth_gssapi/gssapi_errmsg.cc index 8ea4cab5b02..9b3386fba08 100644 --- a/plugin/auth_gssapi/gssapi_errmsg.cc +++ b/plugin/auth_gssapi/gssapi_errmsg.cc @@ -26,7 +26,11 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#if defined(__FreeBSD__) || defined(SOLARIS) || defined(__sun) +#include +#else #include +#endif #include void gssapi_errmsg(OM_uint32 major, OM_uint32 minor, char *buf, size_t size) { diff --git a/plugin/server_audit/server_audit.c b/plugin/server_audit/server_audit.c index 85bf3c03f9a..8e468cf486d 100644 --- a/plugin/server_audit/server_audit.c +++ b/plugin/server_audit/server_audit.c @@ -2177,6 +2177,7 @@ struct mysql_event_general_v8 static void auditing_v8(MYSQL_THD thd, struct mysql_event_general_v8 *ev_v8) { +#ifdef __linux__ #ifdef DBUG_OFF #ifdef __x86_64__ static const int cmd_off= 4200; @@ -2198,6 +2199,7 @@ static void auditing_v8(MYSQL_THD thd, struct mysql_event_general_v8 *ev_v8) static const int db_len_off= 68; #endif /*x86_64*/ #endif /*DBUG_OFF*/ +#endif /*__linux*/ struct mysql_event_general event; @@ -2259,6 +2261,7 @@ static void auditing_v13(MYSQL_THD thd, unsigned int *ev_v0) int get_db_mysql57(MYSQL_THD thd, char **name, int *len) { +#ifdef __linux__ int db_off; int db_len_off; if (debug_server_started) @@ -2282,7 +2285,6 @@ int get_db_mysql57(MYSQL_THD thd, char **name, int *len) #endif /*x86_64*/ } -#ifdef __linux__ *name= *(char **) (((char *) thd) + db_off); *len= *((int *) (((char*) thd) + db_len_off)); if (*name && (*name)[*len] != 0) diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index df1ff1faf03..3f03f27e21c 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -1295,7 +1295,8 @@ bool do_command(THD *thd) mysql_mutex_lock(&thd->LOCK_thd_data); if (thd->wsrep_conflict_state == MUST_ABORT) { - DBUG_PRINT("wsrep",("aborted for wsrep rollback: %lu", thd->real_id)); + DBUG_PRINT("wsrep",("aborted for wsrep rollback: %lu", + (long unsigned int) thd->real_id)); wsrep_client_rollback(thd); } mysql_mutex_unlock(&thd->LOCK_thd_data);