]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Use common bits/msq.h for more architectures.
authorJoseph Myers <joseph@codesourcery.com>
Wed, 10 Oct 2018 00:52:47 +0000 (00:52 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Wed, 10 Oct 2018 00:52:47 +0000 (00:52 +0000)
sysdeps/unix/sysv/linux/bits/msq.h has padding after time fields in
struct msqid_ds unconditionally, and thus is only suitable for 32-bit
architectures (no 64-bit configurations use this file);
sysdeps/unix/sysv/linux/generic/bits/msq.h is substantively the same,
except that the padding is conditioned on __WORDSIZE == 32, and so it
can be used for 64-bit architectures as well.

This patch adds the conditionals to
sysdeps/unix/sysv/linux/bits/msq.h.  The linux/generic/ version is
then no longer needed and so is removed, as are the alpha, ia64 and
s390 versions which are also no longer needed.  The other
architecture-specific versions have different padding or types and so
are still needed after this change.

Tested with build-many-glibcs.py.

* sysdeps/unix/sysv/linux/bits/msq.h: Include <bits/wordsize.h>.
(struct msqid_ds): Condition padding after time fields on
[__WORDSIZE == 32].
* sysdeps/unix/sysv/linux/alpha/bits/msq.h: Remove file.
* sysdeps/unix/sysv/linux/generic/bits/msq.h: Likewise.
* sysdeps/unix/sysv/linux/ia64/bits/msq.h: Likewise.
* sysdeps/unix/sysv/linux/s390/bits/msq.h: Likewise.

ChangeLog
sysdeps/unix/sysv/linux/alpha/bits/msq.h [deleted file]
sysdeps/unix/sysv/linux/bits/msq.h
sysdeps/unix/sysv/linux/generic/bits/msq.h [deleted file]
sysdeps/unix/sysv/linux/ia64/bits/msq.h [deleted file]
sysdeps/unix/sysv/linux/s390/bits/msq.h [deleted file]

index ec87f3b009600017633faab3064d061ceb0b50b6..124f645284b9fe5a708c2fd96deea88991b1327c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2018-10-10  Joseph Myers  <joseph@codesourcery.com>
+
+       * sysdeps/unix/sysv/linux/bits/msq.h: Include <bits/wordsize.h>.
+       (struct msqid_ds): Condition padding after time fields on
+       [__WORDSIZE == 32].
+       * sysdeps/unix/sysv/linux/alpha/bits/msq.h: Remove file.
+       * sysdeps/unix/sysv/linux/generic/bits/msq.h: Likewise.
+       * sysdeps/unix/sysv/linux/ia64/bits/msq.h: Likewise.
+       * sysdeps/unix/sysv/linux/s390/bits/msq.h: Likewise.
+
 2018-10-09  Szabolcs Nagy  <szabolcs.nagy@arm.com>
 
        * nss/tst-nss-files-hosts-multi.c (TIMEOUT): Define.
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/msq.h b/sysdeps/unix/sysv/linux/alpha/bits/msq.h
deleted file mode 100644 (file)
index d15802d..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright (C) 1995-2018 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
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library.  If not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _SYS_MSG_H
-# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Define options for message queue functions.  */
-#define MSG_NOERROR    010000  /* no error if message is too big */
-#ifdef __USE_GNU
-# define MSG_EXCEPT    020000  /* recv any msg except of specified type */
-# define MSG_COPY      040000  /* copy (not remove) all queue messages */
-#endif
-
-/* Types used in the structure definition.  */
-typedef unsigned long int msgqnum_t;
-typedef unsigned long int msglen_t;
-
-
-/* Structure of record for one message inside the kernel.
-   The type `struct msg' is opaque.  */
-struct msqid_ds
-{
-  struct ipc_perm msg_perm;    /* structure describing operation permission */
-  __time_t msg_stime;          /* time of last msgsnd command */
-  __time_t msg_rtime;          /* time of last msgrcv command */
-  __time_t msg_ctime;          /* time of last change */
-  unsigned long int __msg_cbytes; /* current number of bytes on queue */
-  msgqnum_t msg_qnum;          /* number of messages currently on queue */
-  msglen_t msg_qbytes;         /* max number of bytes allowed on queue */
-  __pid_t msg_lspid;           /* pid of last msgsnd() */
-  __pid_t msg_lrpid;           /* pid of last msgrcv() */
-  unsigned long int __glibc_reserved1;
-  unsigned long int __glibc_reserved2;
-};
-
-#ifdef __USE_MISC
-
-# define msg_cbytes    __msg_cbytes
-
-/* ipcs ctl commands */
-# define MSG_STAT 11
-# define MSG_INFO 12
-# define MSG_STAT_ANY 13
-
-/* buffer for msgctl calls IPC_INFO, MSG_INFO */
-struct msginfo
-  {
-    int msgpool;
-    int msgmap;
-    int msgmax;
-    int msgmnb;
-    int msgmni;
-    int msgssz;
-    int msgtql;
-    unsigned short int msgseg;
-  };
-
-#endif /* __USE_MISC */
index 319521018d3753c75b0758b3497f7e3b584cd693..0fe85e578d3ecdd22572333897331581966a1f29 100644 (file)
@@ -20,6 +20,7 @@
 #endif
 
 #include <bits/types.h>
+#include <bits/wordsize.h>
 
 /* Define options for message queue functions.  */
 #define MSG_NOERROR    010000  /* no error if message is too big */
@@ -39,11 +40,17 @@ struct msqid_ds
 {
   struct ipc_perm msg_perm;    /* structure describing operation permission */
   __time_t msg_stime;          /* time of last msgsnd command */
+#if __WORDSIZE == 32
   unsigned long int __glibc_reserved1;
+#endif
   __time_t msg_rtime;          /* time of last msgrcv command */
+#if __WORDSIZE == 32
   unsigned long int __glibc_reserved2;
+#endif
   __time_t msg_ctime;          /* time of last change */
+#if __WORDSIZE == 32
   unsigned long int __glibc_reserved3;
+#endif
   unsigned long int __msg_cbytes; /* current number of bytes on queue */
   msgqnum_t msg_qnum;          /* number of messages currently on queue */
   msglen_t msg_qbytes;         /* max number of bytes allowed on queue */
diff --git a/sysdeps/unix/sysv/linux/generic/bits/msq.h b/sysdeps/unix/sysv/linux/generic/bits/msq.h
deleted file mode 100644 (file)
index fe2bff6..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library.  If not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _SYS_MSG_H
-# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-#endif
-
-#include <bits/types.h>
-#include <bits/wordsize.h>
-
-/* Define options for message queue functions.  */
-#define MSG_NOERROR    010000  /* no error if message is too big */
-#ifdef __USE_GNU
-# define MSG_EXCEPT    020000  /* recv any msg except of specified type */
-# define MSG_COPY      040000  /* copy (not remove) all queue messages */
-#endif
-
-/* Types used in the structure definition.  */
-typedef unsigned long int msgqnum_t;
-typedef unsigned long int msglen_t;
-
-/* Structure of record for one message inside the kernel.
-   The type `struct msg' is opaque.  */
-struct msqid_ds
-{
-  struct ipc_perm msg_perm;    /* structure describing operation permission */
-  __time_t msg_stime;          /* time of last msgsnd command */
-#if __WORDSIZE == 32
-  unsigned long int __glibc_reserved1;
-#endif
-  __time_t msg_rtime;          /* time of last msgrcv command */
-#if __WORDSIZE == 32
-  unsigned long int __glibc_reserved2;
-#endif
-  __time_t msg_ctime;          /* time of last change */
-#if __WORDSIZE == 32
-  unsigned long int __glibc_reserved3;
-#endif
-  unsigned long int __msg_cbytes; /* current number of bytes on queue */
-  msgqnum_t msg_qnum;          /* number of messages currently on queue */
-  msglen_t msg_qbytes;         /* max number of bytes allowed on queue */
-  __pid_t msg_lspid;           /* pid of last msgsnd() */
-  __pid_t msg_lrpid;           /* pid of last msgrcv() */
-  unsigned long int __glibc_reserved4;
-  unsigned long int __glibc_reserved5;
-};
-
-#ifdef __USE_MISC
-
-# define msg_cbytes    __msg_cbytes
-
-/* ipcs ctl commands */
-# define MSG_STAT 11
-# define MSG_INFO 12
-# define MSG_STAT_ANY 13
-
-/* buffer for msgctl calls IPC_INFO, MSG_INFO */
-struct msginfo
-  {
-    int msgpool;
-    int msgmap;
-    int msgmax;
-    int msgmnb;
-    int msgmni;
-    int msgssz;
-    int msgtql;
-    unsigned short int msgseg;
-  };
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/msq.h b/sysdeps/unix/sysv/linux/ia64/bits/msq.h
deleted file mode 100644 (file)
index acf64e8..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-       Contribute by David Mosberger-Tang <davidm@hpl.hp.com>
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _SYS_MSG_H
-#error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Define options for message queue functions.  */
-#define MSG_NOERROR    010000  /* no error if message is too big */
-#ifdef __USE_GNU
-# define MSG_EXCEPT    020000  /* recv any msg except of specified type */
-# define MSG_COPY      040000  /* copy (not remove) all queue messages */
-#endif
-
-/* Types used in the structure definition.  */
-typedef unsigned long int msgqnum_t;
-typedef unsigned long int msglen_t;
-
-
-/* Structure of record for one message inside the kernel.
-   The type `struct msg' is opaque.  */
-struct msqid_ds
-{
-  struct ipc_perm msg_perm;    /* structure describing operation permission */
-  __time_t msg_stime;          /* time of last msgsnd command */
-  __time_t msg_rtime;          /* time of last msgrcv command */
-  __time_t msg_ctime;          /* time of last change */
-  unsigned long int __msg_cbytes;      /* current number of bytes on queue */
-  msgqnum_t msg_qnum;          /* number of messages currently on queue */
-  msglen_t msg_qbytes;         /* max number of bytes allowed on queue */
-  __pid_t msg_lspid;           /* pid of last msgsnd() */
-  __pid_t msg_lrpid;           /* pid of last msgrcv() */
-  unsigned long int __glibc_reserved1;
-  unsigned long int __glibc_reserved2;
-};
-
-#ifdef __USE_MISC
-
-# define msg_cbytes    __msg_cbytes
-
-/* ipcs ctl commands */
-# define MSG_STAT 11
-# define MSG_INFO 12
-# define MSG_STAT_ANY 13
-
-/* buffer for msgctl calls IPC_INFO, MSG_INFO */
-struct msginfo
-  {
-    int msgpool;
-    int msgmap;
-    int msgmax;
-    int msgmnb;
-    int msgmni;
-    int msgssz;
-    int msgtql;
-    unsigned short int msgseg;
-  };
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/s390/bits/msq.h b/sysdeps/unix/sysv/linux/s390/bits/msq.h
deleted file mode 100644 (file)
index b5dee36..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright (C) 2001-2018 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
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _SYS_MSG_H
-# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-#endif
-
-#include <bits/types.h>
-#include <bits/wordsize.h>
-
-/* Define options for message queue functions.  */
-#define MSG_NOERROR    010000  /* no error if message is too big */
-#ifdef __USE_GNU
-# define MSG_EXCEPT    020000  /* recv any msg except of specified type */
-# define MSG_COPY      040000  /* copy (not remove) all queue messages */
-#endif
-
-/* Types used in the structure definition.  */
-typedef unsigned long int msgqnum_t;
-typedef unsigned long int msglen_t;
-
-
-/* Structure of record for one message inside the kernel.
-   The type `struct msg' is opaque.  */
-struct msqid_ds
-{
-  struct ipc_perm msg_perm;    /* structure describing operation permission */
-  __time_t msg_stime;          /* time of last msgsnd command */
-#if __WORDSIZE != 64
-  unsigned long int __glibc_reserved1;
-#endif
-  __time_t msg_rtime;          /* time of last msgrcv command */
-#if __WORDSIZE != 64
-  unsigned long int __glibc_reserved2;
-#endif
-  __time_t msg_ctime;          /* time of last change */
-#if __WORDSIZE != 64
-  unsigned long int __glibc_reserved3;
-#endif
-  unsigned long int __msg_cbytes; /* current number of bytes on queue */
-  msgqnum_t msg_qnum;          /* number of messages currently on queue */
-  msglen_t msg_qbytes;         /* max number of bytes allowed on queue */
-  __pid_t msg_lspid;           /* pid of last msgsnd() */
-  __pid_t msg_lrpid;           /* pid of last msgrcv() */
-  unsigned long int __glibc_reserved4;
-  unsigned long int __glibc_reserved5;
-};
-
-#ifdef __USE_MISC
-
-# define msg_cbytes    __msg_cbytes
-
-/* ipcs ctl commands */
-# define MSG_STAT 11
-# define MSG_INFO 12
-# define MSG_STAT_ANY 13
-
-/* buffer for msgctl calls IPC_INFO, MSG_INFO */
-struct msginfo
-  {
-    int msgpool;
-    int msgmap;
-    int msgmax;
-    int msgmnb;
-    int msgmni;
-    int msgssz;
-    int msgtql;
-    unsigned short int msgseg;
-  };
-
-#endif /* __USE_MISC */