Index: c/src/exec/score/cpu/unix/cpu.c
===================================================================
--- c/src/exec/score/cpu/unix/cpu.c	(revision ce6e30b1500fd3912ddbb6898dd0eb9f8d034d0f)
+++ c/src/exec/score/cpu/unix/cpu.c	(revision e7e016fdc22bc830d7ab77e96514fd937a3cd785)
@@ -49,4 +49,6 @@
  */
 
+sigset_t  posix_empty_mask;
+
 void _CPU_ISR_From_CPU_Init()
 {
@@ -54,11 +56,14 @@
   proc_ptr          old_handler;
 
-
+  /*
+   * Generate an empty mask to be used by disable_support
+   */
+
+  sigemptyset(&posix_empty_mask);
+ 
   /*
    * Block all the signals except SIGTRAP for the debugger
    * and SIGABRT for fatal errors.
    */
-
-  _CPU_ISR_Enable(1);
 
   (void) sigfillset(&_CPU_Signal_mask);
@@ -68,5 +73,5 @@
   (void) sigdelset(&_CPU_Signal_mask, SIGCONT);
 
-  sigprocmask(SIG_BLOCK, &_CPU_Signal_mask, 0);
+  _CPU_ISR_Enable(1);
 
   /*
@@ -131,9 +136,5 @@
   sigaction(SIGTTOU, &act, 0);
   sigaction(SIGURG, &act, 0);
-/*
- *  XXX: Really should be on HPUX.
- */
-
-#if defined(hppa1_1)
+#ifdef SIGLOST
     sigaction(SIGLOST, &act, 0);
 #endif
@@ -492,11 +493,8 @@
 {
   sigset_t  old_mask;
-  sigset_t  empty_mask;
-
-  sigemptyset(&empty_mask);
-  sigemptyset(&old_mask);
+
   sigprocmask(SIG_BLOCK, &_CPU_Signal_mask, &old_mask);
 
-  if (memcmp((char *)&empty_mask, (char *)&old_mask, sizeof(sigset_t)) != 0)
+  if (memcmp((void *)&posix_empty_mask, (void *)&old_mask, sizeof(sigset_t)) != 0)
     return 1;
 
@@ -611,4 +609,12 @@
   setitimer(ITIMER_REAL, 0, 0);
 
+  if ( error ) {
+#ifdef RTEMS_DEBUG
+    abort();
+#endif
+    if (getenv("RTEMS_DEBUG"))
+      abort();
+  }
+
   _exit(error);
 }
Index: c/src/exec/score/cpu/unix/cpu.h
===================================================================
--- c/src/exec/score/cpu/unix/cpu.h	(revision ce6e30b1500fd3912ddbb6898dd0eb9f8d034d0f)
+++ c/src/exec/score/cpu/unix/cpu.h	(revision e7e016fdc22bc830d7ab77e96514fd937a3cd785)
@@ -59,16 +59,4 @@
 #endif
 
-#if 0
-static inline X() 
-{
-#ifdef _POSIX_C_SOURCE
-  printf( "_POSIX_C_SOURCE", _POSIX_C_SOURCE );
-#endif
-#ifdef __STRICT_ANSI__
-  printf( "__STRICT_ANSI__", __STRICT_ANSI__ );
-#endif
-}
-#endif
-
 #include <unistd.h>
 #include <setjmp.h>
@@ -335,5 +323,5 @@
  */
 
-#ifdef RTEMS_NEWLIB
+#ifdef RTEMS_NEWLIB_SETJMP
 #define RP_OFF       6
 #define SP_OFF       2
@@ -357,5 +345,5 @@
 #endif
 
-#ifdef RTEMS_UNIXLIB
+#ifdef RTEMS_UNIXLIB_SETJMP
 #define RP_OFF       0
 #define SP_OFF       1
Index: cpukit/score/cpu/unix/cpu.c
===================================================================
--- cpukit/score/cpu/unix/cpu.c	(revision ce6e30b1500fd3912ddbb6898dd0eb9f8d034d0f)
+++ cpukit/score/cpu/unix/cpu.c	(revision e7e016fdc22bc830d7ab77e96514fd937a3cd785)
@@ -49,4 +49,6 @@
  */
 
+sigset_t  posix_empty_mask;
+
 void _CPU_ISR_From_CPU_Init()
 {
@@ -54,11 +56,14 @@
   proc_ptr          old_handler;
 
-
+  /*
+   * Generate an empty mask to be used by disable_support
+   */
+
+  sigemptyset(&posix_empty_mask);
+ 
   /*
    * Block all the signals except SIGTRAP for the debugger
    * and SIGABRT for fatal errors.
    */
-
-  _CPU_ISR_Enable(1);
 
   (void) sigfillset(&_CPU_Signal_mask);
@@ -68,5 +73,5 @@
   (void) sigdelset(&_CPU_Signal_mask, SIGCONT);
 
-  sigprocmask(SIG_BLOCK, &_CPU_Signal_mask, 0);
+  _CPU_ISR_Enable(1);
 
   /*
@@ -131,9 +136,5 @@
   sigaction(SIGTTOU, &act, 0);
   sigaction(SIGURG, &act, 0);
-/*
- *  XXX: Really should be on HPUX.
- */
-
-#if defined(hppa1_1)
+#ifdef SIGLOST
     sigaction(SIGLOST, &act, 0);
 #endif
@@ -492,11 +493,8 @@
 {
   sigset_t  old_mask;
-  sigset_t  empty_mask;
-
-  sigemptyset(&empty_mask);
-  sigemptyset(&old_mask);
+
   sigprocmask(SIG_BLOCK, &_CPU_Signal_mask, &old_mask);
 
-  if (memcmp((char *)&empty_mask, (char *)&old_mask, sizeof(sigset_t)) != 0)
+  if (memcmp((void *)&posix_empty_mask, (void *)&old_mask, sizeof(sigset_t)) != 0)
     return 1;
 
@@ -611,4 +609,12 @@
   setitimer(ITIMER_REAL, 0, 0);
 
+  if ( error ) {
+#ifdef RTEMS_DEBUG
+    abort();
+#endif
+    if (getenv("RTEMS_DEBUG"))
+      abort();
+  }
+
   _exit(error);
 }
