Uli, below patch fixes a mismatch between glibc and the kernel header's definition on MIPS. Please apply. Thanks, Ralf 2003-08-31 Ralf Baechle <ralf@linux-mips.org> * sysdeps/unix/sysv/linux/mips/bits/siginfo.h: Delete comment obsoleted by this patch. (__SIGEV_PAD_SIZE: Change the definition such that it'll keep the size of sigevent_t at SIGEV_MAX_SIZE bytes for 64-bit also. (SIGEV_MAX_SIZE): Remove unused definition making this match the kernel definition. Index: sysdeps/unix/sysv/linux/mips/bits/siginfo.h =================================================================== RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/mips/bits/siginfo.h,v retrieving revision 1.10 diff -u -r1.10 siginfo.h --- sysdeps/unix/sysv/linux/mips/bits/siginfo.h 22 May 2003 02:26:29 -0000 1.10 +++ sysdeps/unix/sysv/linux/mips/bits/siginfo.h 31 Aug 2003 14:31:00 -0000 @@ -255,12 +255,13 @@ /* Structure to transport application-defined values with signals. */ # define __SIGEV_MAX_SIZE 64 -# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3) +# define __SIGEV_HEAD_SIZE (sizeof(long) + 2*sizeof(int)) +# define __SIGEV_PAD_SIZE \ + ((__SIGEV_MAX_SIZE-__SIGEV_HEAD_SIZE) / sizeof(int)) /* Forward declaration of the `pthread_attr_t' type. */ struct __pthread_attr_s; -/* XXX This one might need to change!!! */ typedef struct sigevent { sigval_t sigev_value; @@ -290,8 +291,6 @@ # define SIGEV_SIGNAL SIGEV_SIGNAL SIGEV_NONE, /* Other notification: meaningless. */ # define SIGEV_NONE SIGEV_NONE - SIGEV_CALLBACK, /* Deliver via thread creation. */ -# define SIGEV_CALLBACK SIGEV_CALLBACK SIGEV_THREAD /* Deliver via thread creation. */ # define SIGEV_THREAD SIGEV_THREAD };