diff options
Diffstat (limited to 'sql')
-rw-r--r-- | sql/mysqld.cc | 9 | ||||
-rw-r--r-- | sql/sql_string.cc | 6 | ||||
-rw-r--r-- | sql/stacktrace.c | 2 |
3 files changed, 13 insertions, 4 deletions
diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 41e71e72b07..c4af3366806 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -686,6 +686,11 @@ pthread_handler_decl(kill_server_thread,arg __attribute__((unused))) } #endif +#if defined(__amiga__) +#undef sigset +#define sigset signal +#endif + static sig_handler print_signal_warning(int sig) { sql_print_error("Warning: Got signal %d from thread %d", @@ -1310,7 +1315,11 @@ static void init_signals(void) sigprocmask(SIG_SETMASK,&sa.sa_mask,NULL); init_stacktrace(); +#if defined(__amiga__) + sa.sa_handler=(void(*)())handle_segfault; +#else sa.sa_handler=handle_segfault; +#endif sigaction(SIGSEGV, &sa, NULL); #ifdef SIGBUS sigaction(SIGBUS, &sa, NULL); diff --git a/sql/sql_string.cc b/sql/sql_string.cc index 28cb5213acd..4649af918d5 100644 --- a/sql/sql_string.cc +++ b/sql/sql_string.cc @@ -779,10 +779,10 @@ int wild_compare(const char *str,const char *str_end, { while (str != str_end && *str != cmp) str++; - if (str++ == str_end) + if (str++ == str_end) { - DBUG_RETURN(-1) - }; + DBUG_RETURN(-1); + } { int tmp=wild_compare(str,str_end,wildstr,wildend,escape); if (tmp <= 0) diff --git a/sql/stacktrace.c b/sql/stacktrace.c index 4f8fde31d3d..bef53c71a42 100644 --- a/sql/stacktrace.c +++ b/sql/stacktrace.c @@ -218,7 +218,7 @@ void write_core(int sig) { signal(sig, SIG_DFL); pthread_kill(pthread_self(), sig); -#if defined(P_MYID) +#if defined(P_MYID) && !defined(SCO) /* On Solaris, the above kill is not enough */ sigsend(P_PID,P_MYID,sig); #endif |