major bugfix for sigset_t (it was mistakenly 1024 bytes instead of bits)
authorRich Felker <dalias@aerifal.cx>
Mon, 14 Feb 2011 23:45:58 +0000 (18:45 -0500)
committerRich Felker <dalias@aerifal.cx>
Mon, 14 Feb 2011 23:45:58 +0000 (18:45 -0500)
note that object files using sigset_t (or struct sigaction) need to be
recompiled to work correctly after this fix.

include/bits/alltypes.h.sh
include/setjmp.h

index c909d7b..d68579f 100755 (executable)
@@ -96,7 +96,7 @@ TYPEDEF int timer_t;
 TYPEDEF int clockid_t;
 TYPEDEF unsigned long clock_t;
 
 TYPEDEF int clockid_t;
 TYPEDEF unsigned long clock_t;
 
-TYPEDEF struct { unsigned long __bits[1024/sizeof(long)]; } sigset_t;
+TYPEDEF struct { unsigned long __bits[128/sizeof(long)]; } sigset_t;
 TYPEDEF struct __siginfo siginfo_t;
 
 TYPEDEF unsigned int socklen_t;
 TYPEDEF struct __siginfo siginfo_t;
 
 TYPEDEF unsigned int socklen_t;
index a5bb1e2..b024c44 100644 (file)
@@ -10,7 +10,7 @@ extern "C" {
 
 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
  || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
 
 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
  || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
-typedef unsigned long sigjmp_buf[(1024+sizeof(jmp_buf))/sizeof(long)];
+typedef unsigned long sigjmp_buf[(128+sizeof(jmp_buf))/sizeof(long)];
 #ifdef _GNU_SOURCE
 #define jmp_buf sigjmp_buf
 #endif
 #ifdef _GNU_SOURCE
 #define jmp_buf sigjmp_buf
 #endif