summaryrefslogtreecommitdiffstats
path: root/Source/cmLoadCommandCommand.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmLoadCommandCommand.cxx')
-rw-r--r--Source/cmLoadCommandCommand.cxx14
1 files changed, 11 insertions, 3 deletions
diff --git a/Source/cmLoadCommandCommand.cxx b/Source/cmLoadCommandCommand.cxx
index b146d2c..60edd56 100644
--- a/Source/cmLoadCommandCommand.cxx
+++ b/Source/cmLoadCommandCommand.cxx
@@ -19,7 +19,9 @@
#include "cmCPluginAPI.cxx"
#include "cmDynamicLoader.h"
#include <signal.h>
+extern "C" void TrapsForSignalsCFunction(int sig);
+
// a class for loadabple commands
class cmLoadedCommand : public cmCommand
{
@@ -103,11 +105,11 @@ public:
if(!remove)
{
- signal(SIGSEGV, cmLoadedCommand::TrapsForSignals);
+ signal(SIGSEGV, TrapsForSignalsCFunction);
#ifdef SIGBUS
- signal(SIGBUS, cmLoadedCommand::TrapsForSignals);
+ signal(SIGBUS, TrapsForSignalsCFunction);
#endif
- signal(SIGILL, cmLoadedCommand::TrapsForSignals);
+ signal(SIGILL, TrapsForSignalsCFunction);
}
else
{
@@ -142,6 +144,12 @@ public:
cmLoadedCommandInfo info;
};
+extern "C" void TrapsForSignalsCFunction(int sig)
+{
+ cmLoadedCommand::TrapsForSignals(sig);
+}
+
+
const char* cmLoadedCommand::LastName = 0;
bool cmLoadedCommand::InitialPass(std::vector<std::string> const& args)