From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-il1-x144.google.com (mail-il1-x144.google.com [IPv6:2607:f8b0:4864:20::144]) by sourceware.org (Postfix) with ESMTPS id 8B84E385B835 for ; Fri, 17 Apr 2020 20:46:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 8B84E385B835 Received: by mail-il1-x144.google.com with SMTP id t4so3520055ilp.1 for ; Fri, 17 Apr 2020 13:46:38 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=gphH+jW0Px3iKgKKlKmP0Htk58I+PCKNGgfUOA0cyZo=; b=e472btFBQJTBRwhWZ4Damq/Iqx2Nx3rjFiS39HtbvqF2MiqmF99EPbkBrddMxU6lkC PtGvyen9X4sMie53Zfm3yoRvGLNFhJXHpslj8Hpw6Veth13TtFtJuEV6Hg+4F/niIu/c qByfYa4k1vc37pepb3Xmlv4Fb5muq0nmwE8NtZTbWtWqKTaFcdwVt/E7YIW/nCPqyfNp OsG2Abo10ZKb35VXJzuiBeTOuUsRZMsFry2h5n40yKFrHo6Fn1R8uKiILNRO8vIf5Y2F ClgpXR6ZtVIyrx/CBORJSvsfoubFgXBduRdJ85qwhQs0XgS8YwJ+eGy3vHWEFlJfjGej DIcg== X-Gm-Message-State: AGi0PuametNrJlkLptE5NnYhflP1+R+kweJ0Cv34iQEr+0u6SeicvrNr nX1O1UwXulpvhKI4H0rDbndm0VtzJHZsVRmb530= X-Google-Smtp-Source: APiQypIQT9xrYPWBk7DAOpJSXCQ5iJ0mXllW7A+Cb7pQUmQt6/7kY2WQM/gJAsCnXGF8YbUEEqZUY+0mP/xXX5OOnuw= X-Received: by 2002:a92:bbd8:: with SMTP id x85mr5198929ilk.40.1587156397617; Fri, 17 Apr 2020 13:46:37 -0700 (PDT) MIME-Version: 1.0 References: <20200401165308.1913271-1-alistair.francis@wdc.com> <20200401165308.1913271-3-alistair.francis@wdc.com> In-Reply-To: From: Alistair Francis Date: Fri, 17 Apr 2020 13:38:15 -0700 Message-ID: Subject: Re: [PATCH v5 2/3] semctl: Remove the sem-pad.h file To: Adhemerval Zanella Cc: GNU C Library Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-18.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Apr 2020 20:46:41 -0000 On Fri, Apr 17, 2020 at 12:03 PM Adhemerval Zanella via Libc-alpha wrote: > > > > On 01/04/2020 13:53, Alistair Francis via Libc-alpha wrote: > > Remove the sem-pad.h file and instead have architectures override the > > struct semid_ds via the bits/types/struct_semid_ds.h file. > > Ok with the remarks below. > > Reviewed-by: Adhemerval Zanella > > > --- > > sysdeps/unix/sysv/linux/Makefile | 2 +- > > sysdeps/unix/sysv/linux/bits/sem-pad.h | 33 ------------- > > sysdeps/unix/sysv/linux/bits/sem.h | 2 +- > > .../sysv/linux/bits/types/struct_semid_ds.h | 29 ++++++------ > > .../linux/hppa/bits/types/struct_semid_ds.h | 46 +++++++++++++++++++ > > sysdeps/unix/sysv/linux/mips/bits/sem-pad.h | 24 ---------- > > .../bits/types/struct_semid_ds.h} | 20 +++++--- > > .../unix/sysv/linux/powerpc/bits/sem-pad.h | 26 ----------- > > .../powerpc/bits/types/struct_semid_ds.h | 46 +++++++++++++++++++ > > .../linux/sparc/bits/types/struct_semid_ds.h | 46 +++++++++++++++++++ > > sysdeps/unix/sysv/linux/x86/bits/sem-pad.h | 24 ---------- > > .../bits/types/struct_semid_ds.h} | 22 ++++++--- > > 12 files changed, 184 insertions(+), 136 deletions(-) > > delete mode 100644 sysdeps/unix/sysv/linux/bits/sem-pad.h > > create mode 100644 sysdeps/unix/sysv/linux/hppa/bits/types/struct_semid_ds.h > > delete mode 100644 sysdeps/unix/sysv/linux/mips/bits/sem-pad.h > > rename sysdeps/unix/sysv/linux/{sparc/bits/sem-pad.h => mips/bits/types/struct_semid_ds.h} (56%) > > delete mode 100644 sysdeps/unix/sysv/linux/powerpc/bits/sem-pad.h > > create mode 100644 sysdeps/unix/sysv/linux/powerpc/bits/types/struct_semid_ds.h > > create mode 100644 sysdeps/unix/sysv/linux/sparc/bits/types/struct_semid_ds.h > > delete mode 100644 sysdeps/unix/sysv/linux/x86/bits/sem-pad.h > > rename sysdeps/unix/sysv/linux/{hppa/bits/sem-pad.h => x86/bits/types/struct_semid_ds.h} (52%) > > > > diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile > > index bbf1d60fc6..84ed4344d3 100644 > > --- a/sysdeps/unix/sysv/linux/Makefile > > +++ b/sysdeps/unix/sysv/linux/Makefile > > @@ -86,7 +86,7 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.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/sem-pad.h bits/shmlba.h bits/shm-pad.h \ > > + bits/msq-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 \ > > Ok. > > > diff --git a/sysdeps/unix/sysv/linux/bits/sem-pad.h b/sysdeps/unix/sysv/linux/bits/sem-pad.h > > deleted file mode 100644 > > index 566ce039cc..0000000000 > > --- a/sysdeps/unix/sysv/linux/bits/sem-pad.h > > +++ /dev/null > > @@ -1,33 +0,0 @@ > > -/* Define where padding goes in struct semid_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 > > - . */ > > - > > -#ifndef _SYS_SEM_H > > -# error "Never use directly; include instead." > > -#endif > > - > > -#include > > - > > -/* 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, > > - or include it despite being 64-bit. This must match the layout > > - used for struct semid64_ds in , as glibc does not do > > - layout conversions for this structure. */ > > - > > -#define __SEM_PAD_AFTER_TIME (__TIMESIZE == 32) > > -#define __SEM_PAD_BEFORE_TIME 0 > > Ok. > > > diff --git a/sysdeps/unix/sysv/linux/bits/sem.h b/sysdeps/unix/sysv/linux/bits/sem.h > > index 0d1813ec67..ba1169fdb3 100644 > > --- a/sysdeps/unix/sysv/linux/bits/sem.h > > +++ b/sysdeps/unix/sysv/linux/bits/sem.h > > @@ -20,7 +20,7 @@ > > #endif > > > > #include > > -#include > > +#include > > #include > > > > /* Flags for `semop'. */ > > Ok. > > > diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/bits/types/struct_semid_ds.h > > index ba0719e77a..659db85db8 100644 > > --- a/sysdeps/unix/sysv/linux/bits/types/struct_semid_ds.h > > +++ b/sysdeps/unix/sysv/linux/bits/types/struct_semid_ds.h > > @@ -20,24 +20,27 @@ > > # error "Never include directly; use instead." > > #endif > > > > -#if __SEM_PAD_BEFORE_TIME > > -# define __SEM_PAD_TIME(NAME, RES) \ > > - __syscall_ulong_t __glibc_reserved ## RES; __time_t NAME > > -#elif __SEM_PAD_AFTER_TIME > > -# define __SEM_PAD_TIME(NAME, RES) \ > > - __time_t NAME; __syscall_ulong_t __glibc_reserved ## RES > > -#else > > -# define __SEM_PAD_TIME(NAME, RES) \ > > - __time_t NAME > > -#endif > > - > > /* Data structure describing a set of semaphores. */ > > +#if __TIMESIZE == 32 > > +struct semid_ds > > +{ > > + struct ipc_perm sem_perm; /* operation permission struct */ > > + __time_t sem_otime; /* last semop() time */ > > + __syscall_ulong_t __glibc_reserved1; > > + __time_t sem_ctime; /* last time changed by semctl() */ > > + __syscall_ulong_t __glibc_reserved2; > > + __syscall_ulong_t sem_nsems; /* number of semaphores in set */ > > + __syscall_ulong_t __glibc_reserved3; > > + __syscall_ulong_t __glibc_reserved4; > > +}; > > +#else > > struct semid_ds > > { > > struct ipc_perm sem_perm; /* operation permission struct */ > > - __SEM_PAD_TIME (sem_otime, 1); /* last semop() time */ > > - __SEM_PAD_TIME (sem_ctime, 2); /* last time changed by semctl() */ > > + __time_t sem_otime; /* last semop() time */ > > + __time_t sem_ctime; /* last time changed by semctl() */ > > Shouldn't be __time64_t? They should be the same as we are outside the __TIMESIZE == 32 define, time_t just seemed more generic. Do you want me to change it? > > > __syscall_ulong_t sem_nsems; /* number of semaphores in set */ > > __syscall_ulong_t __glibc_reserved3; > > __syscall_ulong_t __glibc_reserved4; > > }; > > +#endif> diff --git a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_semid_ds.h > > new file mode 100644 > > index 0000000000..fbc26ef2ca > > --- /dev/null > > +++ b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_semid_ds.h > > @@ -0,0 +1,46 @@ > > +/* HPPA implementation of the semaphore struct semid_ds > > + Copyright (C) 1995-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 > > + . */ > > + > > +#ifndef _SYS_SEM_H > > +# error "Never include directly; use instead." > > +#endif > > + > > +/* Data structure describing a set of semaphores. */ > > +#if __TIMESIZE == 32 > > +struct semid_ds > > +{ > > + struct ipc_perm sem_perm; /* operation permission struct */ > > + __syscall_ulong_t __glibc_reserved1; > > + __time_t sem_otime; /* last semop() time */ > > + __syscall_ulong_t __glibc_reserved2; > > + __time_t sem_ctime; /* last time changed by semctl() */ > > + __syscall_ulong_t sem_nsems; /* number of semaphores in set */ > > + __syscall_ulong_t __glibc_reserved3; > > + __syscall_ulong_t __glibc_reserved4; > > +}; > > Ok. > > > +#else > > +struct semid_ds > > +{ > > + struct ipc_perm sem_perm; /* operation permission struct */ > > + __time_t sem_otime; /* last semop() time */ > > + __time_t sem_ctime; /* last time changed by semctl() */ > > + __syscall_ulong_t sem_nsems; /* number of semaphores in set */ > > + __syscall_ulong_t __glibc_reserved3; > > + __syscall_ulong_t __glibc_reserved4; > > +}; > > +#endif > > There is no support for 64-bit userland neither it is a valid glibc > support ABI, so we can remove it. Removed! > > > diff --git a/sysdeps/unix/sysv/linux/mips/bits/sem-pad.h b/sysdeps/unix/sysv/linux/mips/bits/sem-pad.h > > deleted file mode 100644 > > index 4c581f7694..0000000000 > > --- a/sysdeps/unix/sysv/linux/mips/bits/sem-pad.h > > +++ /dev/null > > @@ -1,24 +0,0 @@ > > -/* Define where padding goes in struct semid_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 > > - . */ > > - > > -#ifndef _SYS_SEM_H > > -# error "Never use directly; include instead." > > -#endif > > - > > -#define __SEM_PAD_AFTER_TIME 0 > > -#define __SEM_PAD_BEFORE_TIME 0 > > Ok. > > > diff --git a/sysdeps/unix/sysv/linux/sparc/bits/sem-pad.h b/sysdeps/unix/sysv/linux/mips/bits/types/struct_semid_ds.h > > similarity index 56% > > rename from sysdeps/unix/sysv/linux/sparc/bits/sem-pad.h > > rename to sysdeps/unix/sysv/linux/mips/bits/types/struct_semid_ds.h > > index 5f4e214d12..8954209a29 100644 > > --- a/sysdeps/unix/sysv/linux/sparc/bits/sem-pad.h > > +++ b/sysdeps/unix/sysv/linux/mips/bits/types/struct_semid_ds.h > > @@ -1,5 +1,5 @@ > > -/* Define where padding goes in struct semid_ds. SPARC version. > > - Copyright (C) 2018-2020 Free Software Foundation, Inc. > > +/* MIPS implementation of the semaphore struct semid_ds > > + Copyright (C) 1995-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 > > @@ -17,10 +17,16 @@ > > . */ > > > > #ifndef _SYS_SEM_H > > -# error "Never use directly; include instead." > > +# error "Never include directly; use instead." > > #endif > > > > -#include > > - > > -#define __SEM_PAD_AFTER_TIME 0 > > -#define __SEM_PAD_BEFORE_TIME (__TIMESIZE == 32) > > +/* Data structure describing a set of semaphores. */ > > +struct semid_ds > > +{ > > + struct ipc_perm sem_perm; /* operation permission struct */ > > + __time_t sem_otime; /* last semop() time */ > > + __time_t sem_ctime; /* last time changed by semctl() */ > > + __syscall_ulong_t sem_nsems; /* number of semaphores in set */ > > + __syscall_ulong_t __glibc_reserved3; > > + __syscall_ulong_t __glibc_reserved4; > > +}; > > Ok. > > > diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/sem-pad.h b/sysdeps/unix/sysv/linux/powerpc/bits/sem-pad.h > > deleted file mode 100644 > > index 42d8827906..0000000000 > > --- a/sysdeps/unix/sysv/linux/powerpc/bits/sem-pad.h > > +++ /dev/null > > @@ -1,26 +0,0 @@ > > -/* Define where padding goes in struct semid_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 > > - . */ > > - > > -#ifndef _SYS_SEM_H > > -# error "Never use directly; include instead." > > -#endif > > - > > -#include > > - > > -#define __SEM_PAD_AFTER_TIME 0 > > -#define __SEM_PAD_BEFORE_TIME (__TIMESIZE == 32) > > Ok. > > > diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_semid_ds.h > > new file mode 100644 > > index 0000000000..d393141808 > > --- /dev/null > > +++ b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_semid_ds.h > > @@ -0,0 +1,46 @@ > > +/* PowerPC implementation of the semaphore struct semid_ds > > Missing period. Added > > > + Copyright (C) 1995-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 > > + . */ > > + > > +#ifndef _SYS_SEM_H > > +# error "Never include directly; use instead." > > +#endif > > + > > +/* Data structure describing a set of semaphores. */ > > +#if __TIMESIZE == 32 > > +struct semid_ds > > +{ > > + struct ipc_perm sem_perm; /* operation permission struct */ > > + __syscall_ulong_t __glibc_reserved1; > > + __time_t sem_otime; /* last semop() time */ > > + __syscall_ulong_t __glibc_reserved2; > > + __time_t sem_ctime; /* last time changed by semctl() */ > > + __syscall_ulong_t sem_nsems; /* number of semaphores in set */ > > + __syscall_ulong_t __glibc_reserved3; > > + __syscall_ulong_t __glibc_reserved4; > > +}; > > +#else > > +struct semid_ds > > +{ > > + struct ipc_perm sem_perm; /* operation permission struct */ > > + __time_t sem_otime; /* last semop() time */ > > + __time_t sem_ctime; /* last time changed by semctl() */ > > + __syscall_ulong_t sem_nsems; /* number of semaphores in set */ > > + __syscall_ulong_t __glibc_reserved3; > > + __syscall_ulong_t __glibc_reserved4; > > +}; > > +#endif > > Ok, although it can be simplified to: > > struct semid_ds > { > struct ipc_perm sem_perm; > #if __TIMESIZE == 32 > __syscall_ulong_t __glibc_reserved1; > __time_t sem_otime; > __syscall_ulong_t __glibc_reserved2; > __time_t sem_ctime; > #else > __time_t sem_otime; > __time_t sem_ctime; > #endif > __syscall_ulong_t sem_nsems; > __syscall_ulong_t __glibc_reserved3; > __syscall_ulong_t __glibc_reserved4; > }; Done > > > diff --git a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_semid_ds.h > > new file mode 100644 > > index 0000000000..84c7a9022a > > --- /dev/null > > +++ b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_semid_ds.h > > @@ -0,0 +1,46 @@ > > +/* Sparc implementation of the semaphore struct semid_ds > > + Copyright (C) 1995-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 > > + . */ > > + > > +#ifndef _SYS_SEM_H > > +# error "Never include directly; use instead." > > +#endif > > + > > +/* Data structure describing a set of semaphores. */ > > +#if __TIMESIZE == 32 > > +struct semid_ds > > +{ > > + struct ipc_perm sem_perm; /* operation permission struct */ > > + __syscall_ulong_t __glibc_reserved1; > > + __time_t sem_otime; /* last semop() time */ > > + __syscall_ulong_t __glibc_reserved2; > > + __time_t sem_ctime; /* last time changed by semctl() */ > > + __syscall_ulong_t sem_nsems; /* number of semaphores in set */ > > + __syscall_ulong_t __glibc_reserved3; > > + __syscall_ulong_t __glibc_reserved4; > > +}; > > +#else > > +struct semid_ds > > +{ > > + struct ipc_perm sem_perm; /* operation permission struct */ > > + __time_t sem_otime; /* last semop() time */ > > + __time_t sem_ctime; /* last time changed by semctl() */ > > + __syscall_ulong_t sem_nsems; /* number of semaphores in set */ > > + __syscall_ulong_t __glibc_reserved3; > > + __syscall_ulong_t __glibc_reserved4; > > +}; > > +#endif > > Ok, although it also can be simplified as the powerpc one. Done. Thanks for the review. Alistair > > > diff --git a/sysdeps/unix/sysv/linux/x86/bits/sem-pad.h b/sysdeps/unix/sysv/linux/x86/bits/sem-pad.h > > deleted file mode 100644 > > index 102e226997..0000000000 > > --- a/sysdeps/unix/sysv/linux/x86/bits/sem-pad.h > > +++ /dev/null > > @@ -1,24 +0,0 @@ > > -/* Define where padding goes in struct semid_ds. x86 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 > > - . */ > > - > > -#ifndef _SYS_SEM_H > > -# error "Never use directly; include instead." > > -#endif > > - > > -#define __SEM_PAD_AFTER_TIME 1 > > -#define __SEM_PAD_BEFORE_TIME 0 > > Ok. > > > diff --git a/sysdeps/unix/sysv/linux/hppa/bits/sem-pad.h b/sysdeps/unix/sysv/linux/x86/bits/types/struct_semid_ds.h > > similarity index 52% > > rename from sysdeps/unix/sysv/linux/hppa/bits/sem-pad.h > > rename to sysdeps/unix/sysv/linux/x86/bits/types/struct_semid_ds.h > > index ee0332325b..22f0645f85 100644 > > --- a/sysdeps/unix/sysv/linux/hppa/bits/sem-pad.h > > +++ b/sysdeps/unix/sysv/linux/x86/bits/types/struct_semid_ds.h > > @@ -1,5 +1,5 @@ > > -/* Define where padding goes in struct semid_ds. HPPA version. > > - Copyright (C) 2018-2020 Free Software Foundation, Inc. > > +/* Sparc implementation of the semaphore struct semid_ds > > + Copyright (C) 1995-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 > > @@ -17,10 +17,18 @@ > > . */ > > > > #ifndef _SYS_SEM_H > > -# error "Never use directly; include instead." > > +# error "Never include directly; use instead." > > #endif > > > > -#include > > - > > -#define __SEM_PAD_AFTER_TIME 0 > > -#define __SEM_PAD_BEFORE_TIME (__TIMESIZE == 32) > > +/* Data structure describing a set of semaphores. */ > > +struct semid_ds > > +{ > > + struct ipc_perm sem_perm; /* operation permission struct */ > > + __time_t sem_otime; /* last semop() time */ > > + __syscall_ulong_t __glibc_reserved1; > > + __time_t sem_ctime; /* last time changed by semctl() */ > > + __syscall_ulong_t __glibc_reserved2; > > + __syscall_ulong_t sem_nsems; /* number of semaphores in set */ > > + __syscall_ulong_t __glibc_reserved3; > > + __syscall_ulong_t __glibc_reserved4; > > +}; > > > > Ok. >