diff --git a/SystemInformation.cxx b/SystemInformation.cxx
index 97585889c310b091966934d93027060972e9a7fa..a9efe7b3e523c1edbcb616584cfa241b2f24350e 100644
--- a/SystemInformation.cxx
+++ b/SystemInformation.cxx
@@ -117,6 +117,8 @@ typedef int siginfo_t;
 namespace KWSYS_NAMESPACE
 {
 
+extern "C" { typedef void (*SigAction)(int,siginfo_t*,void*); }
+
 //  Define SystemInformationImplementation class
 typedef  void (*DELAY_FUNC)(unsigned int uiMS);
 
@@ -3044,7 +3046,7 @@ void SystemInformationImplementation::SetStackTraceOnError(int enable)
 
     // install ours
     struct sigaction sa;
-    sa.sa_sigaction=&StacktraceSignalHandler;
+    sa.sa_sigaction=(SigAction)StacktraceSignalHandler;
     sa.sa_flags=SA_SIGINFO|SA_RESTART;
     sigemptyset(&sa.sa_mask);