Bug 5600 states that on 32-bit struct signalfd_siginfo is wrong. The resolution is wrong IMO but I agree that we have a problem: The linux kernel header has: __u64 ssi_ptr; while glibc uses uintptr_t ssi_ptr; This should result on 32-bit in differences for the following members and for the size of the structure. I suggest the following patch. Ok to commit? Andreas 2008-01-11 Andreas Jaeger [BZ #5600] * sysdeps/unix/sysv/linux/sys/signalfd.h (struct signalfd_siginfo): Use 64-bit type for ssi_ptr to sync with Linux kernel header. ============================================================ Index: sysdeps/unix/sysv/linux/sys/signalfd.h --- sysdeps/unix/sysv/linux/sys/signalfd.h 3 Dec 2007 06:16:54 -0000 1.3 +++ sysdeps/unix/sysv/linux/sys/signalfd.h 11 Jan 2008 10:01:03 -0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007 Free Software Foundation, Inc. +/* Copyright (C) 2007, 2008 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -38,7 +38,7 @@ struct signalfd_siginfo uint32_t ssi_trapno; int32_t ssi_status; int32_t ssi_int; - uintptr_t ssi_ptr; + uint64_t ssi_ptr; uint64_t ssi_utime; uint64_t ssi_stime; uint64_t ssi_addr; -- Andreas Jaeger, Director Platform/openSUSE, aj@suse.de SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) Maxfeldstr. 5, 90409 Nürnberg, Germany GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126