about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rw-r--r--bits/sem.h26
-rw-r--r--sysdeps/generic/bits/sem.h26
-rw-r--r--sysdeps/unix/sysv/linux/bits/ipc.h11
-rw-r--r--sysdeps/unix/sysv/linux/bits/sem.h2
-rw-r--r--sysdeps/unix/sysv/linux/msgrcv.c12
6 files changed, 58 insertions, 30 deletions
diff --git a/ChangeLog b/ChangeLog
index 96a9bdaeca..09d59f456c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+1998-06-19  Ulrich Drepper  <drepper@cygnus.com>
+
+	* sysdeps/generic/bits/sem.h: Don't define union semun.
+
+	* sysdeps/unix/sysv/linux/bits/sem.h: Fix typo.
+
+	* sysdeps/unix/sysv/linux/bits/ipc.h: Remove ipc_kludge definition
+	here.
+	* sysdeps/unix/sysv/linux/msgrcv.c (msgrcv): Add ipc_kludge
+	definition here.
+
 1998-06-18 21:45  Ulrich Drepper  <drepper@cygnus.com>
 
 	* signal/signal.h: Add prototype for __sigaltstack.
diff --git a/bits/sem.h b/bits/sem.h
index 8b9f97c62a..cb6657a345 100644
--- a/bits/sem.h
+++ b/bits/sem.h
@@ -1,4 +1,5 @@
-/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1996, 1997, 1998
+   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
@@ -44,11 +45,18 @@ struct semid_ds
   unsigned short int sem_nsems;		/* number of semaphores in set */
 };
 
-/* Union used for argument for `semctl'.  */
-union semun
-{
-  int val;				/* value for SETVAL */
-  struct semid_ds *buf;			/* buffer for IPC_STAT & IPC_SET */
-  unsigned short int *array;		/* array for GETALL & SETALL */
-  struct seminfo *__buf;		/* buffer for IPC_INFO */
- };
+/* The user should define a union like the following to use it for arguments
+   for `semctl'.
+
+   union semun
+   {
+     int val;				<= value for SETVAL
+     struct semid_ds *buf;		<= buffer for IPC_STAT & IPC_SET
+     unsigned short int *array;		<= array for GETALL & SETALL
+     struct seminfo *__buf;		<= buffer for IPC_INFO
+   };
+
+   Previous versions of this file used to define this union but this is
+   incorrect.  One can test the macro _SEM_SEMUN_UNDEFINED to see whether
+   one must define the union or not.  */
+#define _SEM_SEMUN_UNDEFINED	1
diff --git a/sysdeps/generic/bits/sem.h b/sysdeps/generic/bits/sem.h
index 8b9f97c62a..cb6657a345 100644
--- a/sysdeps/generic/bits/sem.h
+++ b/sysdeps/generic/bits/sem.h
@@ -1,4 +1,5 @@
-/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1996, 1997, 1998
+   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
@@ -44,11 +45,18 @@ struct semid_ds
   unsigned short int sem_nsems;		/* number of semaphores in set */
 };
 
-/* Union used for argument for `semctl'.  */
-union semun
-{
-  int val;				/* value for SETVAL */
-  struct semid_ds *buf;			/* buffer for IPC_STAT & IPC_SET */
-  unsigned short int *array;		/* array for GETALL & SETALL */
-  struct seminfo *__buf;		/* buffer for IPC_INFO */
- };
+/* The user should define a union like the following to use it for arguments
+   for `semctl'.
+
+   union semun
+   {
+     int val;				<= value for SETVAL
+     struct semid_ds *buf;		<= buffer for IPC_STAT & IPC_SET
+     unsigned short int *array;		<= array for GETALL & SETALL
+     struct seminfo *__buf;		<= buffer for IPC_INFO
+   };
+
+   Previous versions of this file used to define this union but this is
+   incorrect.  One can test the macro _SEM_SEMUN_UNDEFINED to see whether
+   one must define the union or not.  */
+#define _SEM_SEMUN_UNDEFINED	1
diff --git a/sysdeps/unix/sysv/linux/bits/ipc.h b/sysdeps/unix/sysv/linux/bits/ipc.h
index 8b5db4add6..908647c1e4 100644
--- a/sysdeps/unix/sysv/linux/bits/ipc.h
+++ b/sysdeps/unix/sysv/linux/bits/ipc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1996, 1997, 1998 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
@@ -50,15 +50,6 @@ struct ipc_perm
   };
 
 
-/* Kludge to work around Linux' restriction of only up to five
-   arguments to a system call.  */
-struct ipc_kludge
-  {
-    void *msgp;
-    long int msgtyp;
-  };
-
-
 __BEGIN_DECLS
 
 /* The actual system call: all functions are multiplexed by this.  */
diff --git a/sysdeps/unix/sysv/linux/bits/sem.h b/sysdeps/unix/sysv/linux/bits/sem.h
index dc0ec46cba..3d113a74f6 100644
--- a/sysdeps/unix/sysv/linux/bits/sem.h
+++ b/sysdeps/unix/sysv/linux/bits/sem.h
@@ -62,7 +62,7 @@ struct semid_ds
 
    Previous versions of this file used to define this union but this is
    incorrect.  One can test the macro _SEM_SEMUN_UNDEFINED to see whether
-   one must define the unio or not.  */
+   one must define the union or not.  */
 #define _SEM_SEMUN_UNDEFINED	1
 
 #ifdef __USE_MISC
diff --git a/sysdeps/unix/sysv/linux/msgrcv.c b/sysdeps/unix/sysv/linux/msgrcv.c
index 40c3c95728..a8a0dea3fe 100644
--- a/sysdeps/unix/sysv/linux/msgrcv.c
+++ b/sysdeps/unix/sysv/linux/msgrcv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
 
@@ -19,6 +19,16 @@
 
 #include <sys/msg.h>
 
+
+/* Kludge to work around Linux' restriction of only up to five
+   arguments to a system call.  */
+struct ipc_kludge
+  {
+    void *msgp;
+    long int msgtyp;
+  };
+
+
 int
 msgrcv (msqid, msgp, msgsz, msgtyp, msgflg)
      int msqid;