summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
Diffstat (limited to 'sql')
-rw-r--r--sql/mysqld.cc9
-rw-r--r--sql/sql_string.cc6
-rw-r--r--sql/stacktrace.c2
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