There is a problem with programs compiled against dietlibc on alpha segfaulting when SIGHUP is trapped. This affects lockfile in the util-vserver package. It was suggested on irc that the flags and mask varibales in the sigaction struct for alpha were around the wrong way.

Swapping sa_flags and sa_mask makes the alpha section the same as the ia64 and hppa section. This patch also tidies that up. So far no more segfaults when trapping SIGHUP.

diff -urN dietlibc-0.29-orig/include/signal.h dietlibc-0.29/include/signal.h
--- dietlibc-0.29-orig/include/signal.h Tue Mar 15 18:51:22 2005
+++ dietlibc-0.29/include/signal.h      Thu Jun 23 15:46:02 2005
@@ -438,14 +438,7 @@
 } sigset_t;

 struct sigaction {
-#if defined(__alpha__)
-  union {
-    sighandler_t _sa_handler;
-    void (*_sa_sigaction)(int, siginfo_t*, void*);
-  } _u;
-  sigset_t sa_mask;
-  unsigned long sa_flags;
-#elif defined(__ia64__) || defined(__hppa__)
+#if defined(__alpha__) || defined(__ia64__) || defined(__hppa__)
   union {
     sighandler_t _sa_handler;
     void (*_sa_sigaction)(int, siginfo_t*, void*);

--
   James
_______________________________________________
Vserver mailing list
Vserver@list.linux-vserver.org
http://list.linux-vserver.org/mailman/listinfo/vserver

Reply via email to