This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
[PATCH] MIPS/Linux: Kernel vs libc struct siginfo discrepancy
- From: "Maciej W. Rozycki" <macro at mips dot com>
- To: Ralf Baechle <ralf at linux-mips dot org>, linux-mips at linux-mips dot org, libc-alpha at sources dot redhat dot com
- Cc: Nigel Stephens <nigel at mips dot com>, "Maciej W. Rozycki" <macro at linux-mips dot org>
- Date: Wed, 10 Nov 2004 17:18:02 +0000 (GMT)
- Subject: [PATCH] MIPS/Linux: Kernel vs libc struct siginfo discrepancy
Hello,
Since the following change:
http://www.linux-mips.org/cvsweb/linux/include/asm-mips/siginfo.h.diff?r1=1.4&r2=1.5&only_with_tag=MAIN
dated back to Aug 1999 (!), the definitions of struct siginfo in Linux and
GNU libc differ to each other. While it's the kernel that is at fault by
changing its ABI, at this stage it may be more acceptable to update glibc
as it's not the only program interfacing to Linux (uClibc?). It doesn't
seem to be a heavily used feature as otherwise someone else would have
noticed the problem during these five years. As I don't really have a
preference, hereby I provide two patches to choose from and ask for
voting. The ChangeLog entry is for glibc, of course.
2004-11-10 Maciej W. Rozycki <macro@linux-mips.org>
* sysdeps/unix/sysv/linux/mips/bits/siginfo.h [struct siginfo]
(_sigchld): Update to match the kernel.
Maciej
glibc-2.3.3-20041018-mips-siginfo_sigchld-1.patch
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/bits/siginfo.h glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/bits/siginfo.h
--- glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/bits/siginfo.h Tue Apr 22 02:26:04 2003
+++ glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/bits/siginfo.h Wed Nov 10 16:52:24 2004
@@ -1,5 +1,5 @@
/* siginfo_t, sigevent and constants. Linux version.
- Copyright (C) 1997-2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1997-2002, 2003, 2004 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
@@ -87,8 +87,8 @@ typedef struct siginfo
{
__pid_t si_pid; /* Which child. */
__uid_t si_uid; /* Real user ID of sending process. */
- int si_status; /* Exit value or signal. */
__clock_t si_utime;
+ int si_status; /* Exit value or signal. */
__clock_t si_stime;
} _sigchld;
patch-malta-2.6.9-rc1-20041020-mips-siginfo_sigchld-0
diff -up --recursive --new-file linux-malta-2.6.9-rc1-20041020.macro/include/asm-mips/siginfo.h linux-malta-2.6.9-rc1-20041020/include/asm-mips/siginfo.h
--- linux-malta-2.6.9-rc1-20041020.macro/include/asm-mips/siginfo.h 2004-10-01 14:49:33.000000000 +0000
+++ linux-malta-2.6.9-rc1-20041020/include/asm-mips/siginfo.h 2004-11-10 16:53:42.000000000 +0000
@@ -47,8 +47,8 @@ typedef struct siginfo {
struct {
pid_t _pid; /* which child */
uid_t _uid; /* sender's uid */
- clock_t _utime;
int _status; /* exit code */
+ clock_t _utime;
clock_t _stime;
} _sigchld;