[Ada] Add some comments in init.c about the lynx178 signal handler
authorDoug Rupp <rupp@adacore.com>
Wed, 7 Jul 2021 16:38:34 +0000 (09:38 -0700)
committerPierre-Marie de Rodat <derodat@adacore.com>
Tue, 21 Sep 2021 15:25:04 +0000 (15:25 +0000)
gcc/ada/

* init.c (__gnat_error_handler) [LynxOS]: Add a comment about
missing optional args.

gcc/ada/init.c

index c48e244..2bbb601 100644 (file)
@@ -661,6 +661,28 @@ __gnat_install_handler (void)
 #include <signal.h>
 #include <unistd.h>
 
+/* SA_SIGINFO is not supported by default on LynxOS, so all we have
+   available here is the "sig" argument. On newer LynxOS versions it's
+   possible to support SA_SIGINFO by setting a kernel configuration macro.
+
+   To wit:
+
+   #define NONPOSIX_SA_HANDLER_PROTO (0)
+
+   This macro must be set to 1 in either sys/bsp.<bspname>/uparam.h
+   or in the associated uparam.h customization file sys/bsp.<bspname>/xparam.h
+   (uparam.h includes xparam.h for customization)
+
+   The NONPOSIX_SA_HANDLER_PROTO macro makes it possible to provide
+   signal-catching function with 'info' and 'context' input parameters
+   even if SA_SIGINFO flag is not set or it is set for a non-realtime signal.
+
+   It also allows signal-catching function to update thread context even
+   if SA_UPDATECTX flag is not set.
+
+   This would be useful, but relying on that would transmit the requirement
+   to users to configure that feature as well, which is undesirable.  */
+
 static void
 __gnat_error_handler (int sig)
 {