about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog12
-rw-r--r--NEWS5
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sys/procfs.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/procfs.h4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sys/procfs.h4
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sys/procfs.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/procfs.h4
7 files changed, 27 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 6f71e67eb2..28ec6df0f3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
 2018-09-14  Joseph Myers  <joseph@codesourcery.com>
 
+	[BZ #23649]
+	* sysdeps/unix/sysv/linux/microblaze/sys/procfs.h (struct
+	elf_prpsinfo): Use unsigned int for pr_uid and pr_gid.
+	* sysdeps/unix/sysv/linux/mips/sys/procfs.h (struct elf_prpsinfo):
+	Likewise.
+	* sysdeps/unix/sysv/linux/nios2/sys/procfs.h (struct
+	elf_prpsinfo): Likewise.
+	* sysdeps/unix/sysv/linux/riscv/sys/procfs.h (struct
+	elf_prpsinfo): Likewise.
+	* sysdeps/unix/sysv/linux/sys/procfs.h (struct elf_prpsinfo):
+	Likewise.
+
 	* include/math.h [!_ISOMAC && !(__FINITE_MATH_ONLY__ &&
 	__FINITE_MATH_ONLY__ > 0) && !NO_MATH_REDIRECT] (rint): Redirect
 	using MATH_REDIRECT.
diff --git a/NEWS b/NEWS
index 04a0e89010..dbb86a73a3 100644
--- a/NEWS
+++ b/NEWS
@@ -26,6 +26,11 @@ Deprecated and removed features, and other changes affecting compatibility:
 * The glibc.tune tunable namespace has been renamed to glibc.cpu and the
   tunable glibc.tune.cpu has been renamed to glibc.cpu.name.
 
+* The type of the pr_uid and pr_gid members of struct elf_prpsinfo, defined
+  in <sys/procfs.h>, has been corrected to match the type actually used by
+  the Linux kernel.  This affects the size and layout of that structure on
+  MicroBlaze, MIPS (n64 ABI only), Nios II and RISC-V.
+
 Changes to build and runtime requirements:
 
   [Add changes to build and runtime requirements here]
diff --git a/sysdeps/unix/sysv/linux/microblaze/sys/procfs.h b/sysdeps/unix/sysv/linux/microblaze/sys/procfs.h
index 17c52519e7..7a9832371e 100644
--- a/sysdeps/unix/sysv/linux/microblaze/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/microblaze/sys/procfs.h
@@ -91,8 +91,8 @@ struct elf_prpsinfo
     char pr_zomb;			/* Zombie.  */
     char pr_nice;			/* Nice val.  */
     unsigned long int pr_flag;		/* Flags.  */
-    unsigned short int pr_uid;
-    unsigned short int pr_gid;
+    unsigned int pr_uid;
+    unsigned int pr_gid;
     int pr_pid, pr_ppid, pr_pgrp, pr_sid;
     /* Lots missing.  */
     char pr_fname[16];			/* Filename of executable.  */
diff --git a/sysdeps/unix/sysv/linux/mips/sys/procfs.h b/sysdeps/unix/sysv/linux/mips/sys/procfs.h
index 2be0c7e818..523317dec7 100644
--- a/sysdeps/unix/sysv/linux/mips/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/mips/sys/procfs.h
@@ -97,8 +97,8 @@ struct elf_prpsinfo
 #else
     unsigned long int pr_flag;		/* Flags.  */
 #endif
-    long pr_uid;
-    long pr_gid;
+    unsigned int pr_uid;
+    unsigned int pr_gid;
     int pr_pid, pr_ppid, pr_pgrp, pr_sid;
     /* Lots missing */
     char pr_fname[16];			/* Filename of executable.  */
diff --git a/sysdeps/unix/sysv/linux/nios2/sys/procfs.h b/sysdeps/unix/sysv/linux/nios2/sys/procfs.h
index a61fe96c6b..1bb18f1e58 100644
--- a/sysdeps/unix/sysv/linux/nios2/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/nios2/sys/procfs.h
@@ -91,8 +91,8 @@ struct elf_prpsinfo
     char pr_zomb;			/* Zombie.  */
     char pr_nice;			/* Nice val.  */
     unsigned long int pr_flag;		/* Flags.  */
-    unsigned short int pr_uid;
-    unsigned short int pr_gid;
+    unsigned int pr_uid;
+    unsigned int pr_gid;
     int pr_pid, pr_ppid, pr_pgrp, pr_sid;
     /* Lots missing */
     char pr_fname[16];			/* Filename of executable.  */
diff --git a/sysdeps/unix/sysv/linux/riscv/sys/procfs.h b/sysdeps/unix/sysv/linux/riscv/sys/procfs.h
index 518de56741..3abbecf957 100644
--- a/sysdeps/unix/sysv/linux/riscv/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/riscv/sys/procfs.h
@@ -82,8 +82,8 @@ struct elf_prpsinfo
     char pr_zomb;			/* Zombie.  */
     char pr_nice;			/* Nice val.  */
     unsigned long int pr_flag;		/* Flags.  */
-    long int pr_uid;
-    long int pr_gid;
+    unsigned int pr_uid;
+    unsigned int pr_gid;
     int pr_pid, pr_ppid, pr_pgrp, pr_sid;
     /* Lots missing */
     char pr_fname[16];			/* Filename of executable.  */
diff --git a/sysdeps/unix/sysv/linux/sys/procfs.h b/sysdeps/unix/sysv/linux/sys/procfs.h
index 3c417bab29..6af44c02ca 100644
--- a/sysdeps/unix/sysv/linux/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/sys/procfs.h
@@ -86,8 +86,8 @@ struct elf_prpsinfo
     char pr_zomb;			/* Zombie.  */
     char pr_nice;			/* Nice val.  */
     unsigned long int pr_flag;		/* Flags.  */
-    unsigned short int pr_uid;
-    unsigned short int pr_gid;
+    unsigned int pr_uid;
+    unsigned int pr_gid;
     int pr_pid, pr_ppid, pr_pgrp, pr_sid;
     /* Lots missing */
     char pr_fname[16];			/* Filename of executable.  */