* emacs.c (__do_global_ctors, __do_global_ctors_aux,
authorJim Blandy <jimb@redhat.com>
Thu, 11 Mar 1993 07:13:06 +0000 (07:13 +0000)
committerJim Blandy <jimb@redhat.com>
Thu, 11 Mar 1993 07:13:06 +0000 (07:13 +0000)
__do_global_dtors, __CTOR_LIST__, __DTOR_LIST__, __main): Don't
define these if ORDINARY_LINK is #defined; in that case, the
standard linking procedure will find definitions for these.

* emacs.c (main): SIGIOT isn't defined on all systems; don't set
its signal handler unless it is.

src/emacs.c

index b33bb7f..25edb3f 100644 (file)
@@ -140,7 +140,7 @@ fatal_error_signal (sig)
      Remember that since we're in a signal handler, the signal we're
      going to send is probably blocked, so we have to unblock it if we
      want to really receive it.  */
-  sigblock(SIGEMPTYMASK);
+  sigunblock (sigmask (fatal_error_code));
   kill (getpid (), fatal_error_code);
 #endif /* not VMS */
 }
@@ -173,6 +173,7 @@ extern noshare char **environ;
 #endif /* LINK_CRTL_SHARE */
 #endif /* VMS */
 
+#ifndef ORDINARY_LINK
 /* We don't include crtbegin.o and crtend.o in the link,
    so these functions and variables might be missed.
    Provide dummy definitions to avoid error.
@@ -189,6 +190,7 @@ char * __DTOR_LIST__[2] = { (char *) (-1), 0 };
 __main ()
 {}
 #endif /* __GNUC__ */
+#endif /* ORDINARY_LINK */
 
 /* ARGSUSED */
 main (argc, argv, envp)
@@ -375,7 +377,10 @@ main (argc, argv, envp)
       signal (SIGQUIT, fatal_error_signal);
       signal (SIGILL, fatal_error_signal);
       signal (SIGTRAP, fatal_error_signal);
+#ifdef SIGIOT
+      /* This is missing on some systems - OS/2, for example.  */
       signal (SIGIOT, fatal_error_signal);
+#endif
 #ifdef SIGEMT
       signal (SIGEMT, fatal_error_signal);
 #endif