]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
sysvipc: Remove the linux msq-pad.h file
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Tue, 30 Jun 2020 00:33:14 +0000 (21:33 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 9 Jul 2020 15:05:40 +0000 (12:05 -0300)
Each architecture overrides the struct msqid_ds which its required
kernel ABI one.

Checked on x86_64-linux-gnu and some bases sysvipc tests on hppa,
mips, mipsle, mips64, mips64le, sparc64, sparcv9, powerpc64le,
powerpc64, and powerpc.

Tested-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Tested-by: Alistair Francis <alistair.francis@wdc.com>
sysdeps/unix/sysv/linux/Makefile
sysdeps/unix/sysv/linux/bits/msq-pad.h [deleted file]
sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h
sysdeps/unix/sysv/linux/hppa/bits/msq-pad.h [deleted file]
sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/bits/msq-pad.h [deleted file]
sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/bits/msq-pad.h [deleted file]
sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/sparc/bits/msq-pad.h [deleted file]
sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h [new file with mode: 0644]

index 4fdc67a15ecb6606f119b2868709ee7dd5d80c29..f15392b4996a5797fd27cd8493e60aae396053fb 100644 (file)
@@ -85,7 +85,7 @@ sysdep_headers += sys/mount.h sys/acct.h \
                  bits/siginfo-arch.h bits/siginfo-consts-arch.h \
                  bits/procfs.h bits/procfs-id.h bits/procfs-extra.h \
                  bits/procfs-prregset.h bits/mman-map-flags-generic.h \
-                 bits/msq-pad.h bits/shmlba.h bits/shm-pad.h \
+                 bits/shmlba.h bits/shm-pad.h \
                  bits/termios-struct.h bits/termios-c_cc.h \
                  bits/termios-c_iflag.h bits/termios-c_oflag.h \
                  bits/termios-baud.h bits/termios-c_cflag.h \
diff --git a/sysdeps/unix/sysv/linux/bits/msq-pad.h b/sysdeps/unix/sysv/linux/bits/msq-pad.h
deleted file mode 100644 (file)
index e4ffd39..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Define where padding goes in struct msqid_ds.  Generic version.
-   Copyright (C) 2018-2020 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
-   <https://www.gnu.org/licenses/>.  */
-
-#ifndef _SYS_MSG_H
-# error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead."
-#endif
-
-#include <bits/timesize.h>
-
-/* On most architectures, padding goes after time fields for 32-bit
-   systems and is omitted for 64-bit systems.  Some architectures pad
-   before time fields instead, or omit padding despite being
-   32-bit.  */
-
-#define __MSQ_PAD_AFTER_TIME (__TIMESIZE == 32)
-#define __MSQ_PAD_BEFORE_TIME 0
index bfc56f6ac1e2ab25e3d716f0b2fe6e34473ee7be..32173a7b60092367d66d0f78a7c231cd9162d6cd 100644 (file)
 # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
 #endif
 
-#include <bits/msq-pad.h>
-
-#if __MSQ_PAD_BEFORE_TIME
-# define __MSQ_PAD_TIME(NAME, RES)                             \
-  unsigned long int __glibc_reserved ## RES; __time_t NAME
-#elif __MSQ_PAD_AFTER_TIME
-# define __MSQ_PAD_TIME(NAME, RES)                             \
-  __time_t NAME; unsigned long int __glibc_reserved ## RES
-#else
-# define __MSQ_PAD_TIME(NAME, RES)             \
-  __time_t NAME
-#endif
-
 /* 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 */
-  __MSQ_PAD_TIME (msg_stime, 1);       /* time of last msgsnd command */
-  __MSQ_PAD_TIME (msg_rtime, 2);       /* time of last msgrcv command */
-  __MSQ_PAD_TIME (msg_ctime, 3);       /* time of last change */
+#if __TIMESIZE == 32
+  __time_t msg_stime;          /* time of last msgsnd command */
+  unsigned long int __glibc_reserved1;
+  __time_t msg_rtime;          /* time of last msgsnd command */
+  unsigned long int __glibc_reserved2;
+  __time_t msg_ctime;          /* time of last change */
+  unsigned long int __glibc_reserved3;
+#else
+  __time_t msg_stime;          /* time of last msgsnd command */
+  __time_t msg_rtime;          /* time of last msgsnd command */
+  __time_t msg_ctime;          /* time of last change */
+#endif
   __syscall_ulong_t __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/hppa/bits/msq-pad.h b/sysdeps/unix/sysv/linux/hppa/bits/msq-pad.h
deleted file mode 100644 (file)
index 6986585..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Define where padding goes in struct msqid_ds.  HPPA version.
-   Copyright (C) 2018-2020 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
-   <https://www.gnu.org/licenses/>.  */
-
-#ifndef _SYS_MSG_H
-# error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead."
-#endif
-
-#include <bits/timesize.h>
-
-#define __MSQ_PAD_AFTER_TIME 0
-#define __MSQ_PAD_BEFORE_TIME (__TIMESIZE == 32)
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h
new file mode 100644 (file)
index 0000000..3cf70e3
--- /dev/null
@@ -0,0 +1,47 @@
+/* Linux/HPPA implementation of the SysV message struct msqid_ds.
+   Copyright (C) 2020 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
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _SYS_MSG_H
+# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
+#endif
+
+/* 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 */
+#if __TIMESIZE == 32
+  unsigned long int __glibc_reserved1;
+  __time_t msg_stime;          /* time of last msgsnd command */
+  unsigned long int __glibc_reserved2;
+  __time_t msg_rtime;          /* time of last msgsnd command */
+  unsigned long int __glibc_reserved3;
+  __time_t msg_ctime;          /* time of last change */
+#else
+  __time_t msg_stime;          /* time of last msgsnd command */
+  __time_t msg_rtime;          /* time of last msgsnd command */
+  __time_t msg_ctime;          /* time of last change */
+#endif
+  __syscall_ulong_t __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() */
+  __syscall_ulong_t __glibc_reserved4;
+  __syscall_ulong_t __glibc_reserved5;
+};
diff --git a/sysdeps/unix/sysv/linux/mips/bits/msq-pad.h b/sysdeps/unix/sysv/linux/mips/bits/msq-pad.h
deleted file mode 100644 (file)
index 8e28c5a..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Define where padding goes in struct msqid_ds.  MIPS version.
-   Copyright (C) 2018-2020 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
-   <https://www.gnu.org/licenses/>.  */
-
-#ifndef _SYS_MSG_H
-# error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead."
-#endif
-
-#include <bits/timesize.h>
-
-#ifdef __MIPSEL__
-# define __MSQ_PAD_AFTER_TIME (__TIMESIZE == 32)
-# define __MSQ_PAD_BEFORE_TIME 0
-#else
-# define __MSQ_PAD_AFTER_TIME 0
-# define __MSQ_PAD_BEFORE_TIME (__TIMESIZE == 32)
-#endif
diff --git a/sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h
new file mode 100644 (file)
index 0000000..e012db8
--- /dev/null
@@ -0,0 +1,56 @@
+/* Linux/MIPS implementation of the SysV message struct msqid_ds.
+   Copyright (C) 2020 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
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _SYS_MSG_H
+# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
+#endif
+
+/* 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 */
+#if __TIMESIZE == 32
+# ifdef __MIPSEL__
+  __time_t msg_stime;          /* time of last msgsnd command */
+  unsigned long int __glibc_reserved1;
+  __time_t msg_rtime;          /* time of last msgsnd command */
+  unsigned long int __glibc_reserved2;
+  __time_t msg_ctime;          /* time of last change */
+  unsigned long int __glibc_reserved3;
+# else
+  unsigned long int __glibc_reserved1;
+  __time_t msg_stime;          /* time of last msgsnd command */
+  unsigned long int __glibc_reserved2;
+  __time_t msg_rtime;          /* time of last msgsnd command */
+  unsigned long int __glibc_reserved3;
+  __time_t msg_ctime;          /* time of last change */
+# endif
+#else
+  __time_t msg_stime;          /* time of last msgsnd command */
+  __time_t msg_rtime;          /* time of last msgsnd command */
+  __time_t msg_ctime;          /* time of last change */
+#endif
+  __syscall_ulong_t __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() */
+  __syscall_ulong_t __glibc_reserved4;
+  __syscall_ulong_t __glibc_reserved5;
+};
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/msq-pad.h b/sysdeps/unix/sysv/linux/powerpc/bits/msq-pad.h
deleted file mode 100644 (file)
index e2b9310..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Define where padding goes in struct msqid_ds.  PowerPC version.
-   Copyright (C) 2018-2020 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
-   <https://www.gnu.org/licenses/>.  */
-
-#ifndef _SYS_MSG_H
-# error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead."
-#endif
-
-#include <bits/timesize.h>
-
-#define __MSQ_PAD_AFTER_TIME 0
-#define __MSQ_PAD_BEFORE_TIME (__TIMESIZE == 32)
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h
new file mode 100644 (file)
index 0000000..4ae2fbc
--- /dev/null
@@ -0,0 +1,47 @@
+/* Linux/PowerPC implementation of the SysV message struct msqid_ds.
+   Copyright (C) 2020 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
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _SYS_MSG_H
+# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
+#endif
+
+/* 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 */
+#if __TIMESIZE == 32
+  unsigned long int __glibc_reserved1;
+  __time_t msg_stime;          /* time of last msgsnd command */
+  unsigned long int __glibc_reserved2;
+  __time_t msg_rtime;          /* time of last msgsnd command */
+  unsigned long int __glibc_reserved3;
+  __time_t msg_ctime;          /* time of last change */
+#else
+  __time_t msg_stime;          /* time of last msgsnd command */
+  __time_t msg_rtime;          /* time of last msgsnd command */
+  __time_t msg_ctime;          /* time of last change */
+#endif
+  __syscall_ulong_t __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() */
+  __syscall_ulong_t __glibc_reserved4;
+  __syscall_ulong_t __glibc_reserved5;
+};
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/msq-pad.h b/sysdeps/unix/sysv/linux/sparc/bits/msq-pad.h
deleted file mode 100644 (file)
index 99fdf8c..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Define where padding goes in struct msqid_ds.  SPARC version.
-   Copyright (C) 2018-2020 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
-   <https://www.gnu.org/licenses/>.  */
-
-#ifndef _SYS_MSG_H
-# error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead."
-#endif
-
-#include <bits/timesize.h>
-
-#define __MSQ_PAD_AFTER_TIME 0
-#define __MSQ_PAD_BEFORE_TIME (__TIMESIZE == 32)
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h
new file mode 100644 (file)
index 0000000..7198083
--- /dev/null
@@ -0,0 +1,47 @@
+/* Linux/SPARC implementation of the SysV message struct msqid_ds.
+   Copyright (C) 2020 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
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _SYS_MSG_H
+# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
+#endif
+
+/* 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 */
+#if __TIMESIZE == 32
+  unsigned long int __glibc_reserved1;
+  __time_t msg_stime;          /* time of last msgsnd command */
+  unsigned long int __glibc_reserved2;
+  __time_t msg_rtime;          /* time of last msgsnd command */
+  unsigned long int __glibc_reserved3;
+  __time_t msg_ctime;          /* time of last change */
+#else
+  __time_t msg_stime;          /* time of last msgsnd command */
+  __time_t msg_rtime;          /* time of last msgsnd command */
+  __time_t msg_ctime;          /* time of last change */
+#endif
+  __syscall_ulong_t __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() */
+  __syscall_ulong_t __glibc_reserved4;
+  __syscall_ulong_t __glibc_reserved5;
+};