This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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;
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]