diff mbox series

semaphore: consolidate arch headers into a generic one

Message ID 20200427215938.14136-1-vgupta@synopsys.com
State New
Headers show
Series semaphore: consolidate arch headers into a generic one | expand

Commit Message

Vineet Gupta April 27, 2020, 9:59 p.m. UTC
This consolidates the copy-pasted arch specific semaphore header into
single version (based on s390) which suffices 32-bit and and 64-bit
arch/ABI based on the canonical WORDSIZE.

For now I've left out arches which use alternate defines to choose for
32 vs 64-bit builds (aarch64, mips) which in theory can also use the same
header.

Passes build-many for
  aarch64-linux-gnu arm-linux-gnueabi arm-linux-gnueabihf
  riscv64-linux-gnu-rv64imac-lp64 riscv64-linux-gnu-rv64imafdc-lp64
  x86_64-linux-gnu microblaze-linux-gnu nios2-linux-gnu

Suggested-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
---
 sysdeps/arm/nptl/bits/semaphore.h             | 34 ----------------
 sysdeps/csky/nptl/bits/semaphore.h            | 35 ----------------
 sysdeps/hppa/nptl/bits/semaphore.h            | 31 --------------
 sysdeps/ia64/nptl/bits/semaphore.h            | 35 ----------------
 sysdeps/microblaze/nptl/bits/semaphore.h      | 32 ---------------
 sysdeps/nios2/nptl/bits/semaphore.h           | 32 ---------------
 sysdeps/riscv/nptl/bits/semaphore.h           | 33 ---------------
 sysdeps/sh/nptl/bits/semaphore.h              | 35 ----------------
 sysdeps/sparc/nptl/bits/semaphore.h           | 40 -------------------
 .../unix/sysv/linux/alpha/bits/semaphore.h    | 33 ---------------
 .../nptl => unix/sysv/linux}/bits/semaphore.h |  0
 .../unix/sysv/linux/powerpc/bits/semaphore.h  | 40 -------------------
 sysdeps/x86/bits/semaphore.h                  | 40 -------------------
 13 files changed, 420 deletions(-)
 delete mode 100644 sysdeps/arm/nptl/bits/semaphore.h
 delete mode 100644 sysdeps/csky/nptl/bits/semaphore.h
 delete mode 100644 sysdeps/hppa/nptl/bits/semaphore.h
 delete mode 100644 sysdeps/ia64/nptl/bits/semaphore.h
 delete mode 100644 sysdeps/microblaze/nptl/bits/semaphore.h
 delete mode 100644 sysdeps/nios2/nptl/bits/semaphore.h
 delete mode 100644 sysdeps/riscv/nptl/bits/semaphore.h
 delete mode 100644 sysdeps/sh/nptl/bits/semaphore.h
 delete mode 100644 sysdeps/sparc/nptl/bits/semaphore.h
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/bits/semaphore.h
 rename sysdeps/{s390/nptl => unix/sysv/linux}/bits/semaphore.h (100%)
 delete mode 100644 sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h
 delete mode 100644 sysdeps/x86/bits/semaphore.h

Comments

Vineet Gupta April 27, 2020, 10:13 p.m. UTC | #1
On 4/27/20 2:59 PM, Vineet Gupta via Libc-alpha wrote:
> This consolidates the copy-pasted arch specific semaphore header into
> single version (based on s390) which suffices 32-bit and and 64-bit
> arch/ABI based on the canonical WORDSIZE.
> 
> For now I've left out arches which use alternate defines to choose for
> 32 vs 64-bit builds (aarch64, mips) which in theory can also use the same
> header.
> 
> Passes build-many for
>   aarch64-linux-gnu arm-linux-gnueabi arm-linux-gnueabihf
>   riscv64-linux-gnu-rv64imac-lp64 riscv64-linux-gnu-rv64imafdc-lp64
>   x86_64-linux-gnu microblaze-linux-gnu nios2-linux-gnu
> 
> Suggested-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
>  sysdeps/arm/nptl/bits/semaphore.h             | 34 ----------------
>  sysdeps/csky/nptl/bits/semaphore.h            | 35 ----------------
>  sysdeps/hppa/nptl/bits/semaphore.h            | 31 --------------
>  sysdeps/ia64/nptl/bits/semaphore.h            | 35 ----------------
>  sysdeps/microblaze/nptl/bits/semaphore.h      | 32 ---------------
>  sysdeps/nios2/nptl/bits/semaphore.h           | 32 ---------------
>  sysdeps/riscv/nptl/bits/semaphore.h           | 33 ---------------
>  sysdeps/sh/nptl/bits/semaphore.h              | 35 ----------------
>  sysdeps/sparc/nptl/bits/semaphore.h           | 40 -------------------
>  .../unix/sysv/linux/alpha/bits/semaphore.h    | 33 ---------------
>  .../nptl => unix/sysv/linux}/bits/semaphore.h |  0
>  .../unix/sysv/linux/powerpc/bits/semaphore.h  | 40 -------------------
>  sysdeps/x86/bits/semaphore.h                  | 40 -------------------
>  13 files changed, 420 deletions(-)
>  delete mode 100644 sysdeps/arm/nptl/bits/semaphore.h
>  delete mode 100644 sysdeps/csky/nptl/bits/semaphore.h
>  delete mode 100644 sysdeps/hppa/nptl/bits/semaphore.h
>  delete mode 100644 sysdeps/ia64/nptl/bits/semaphore.h
>  delete mode 100644 sysdeps/microblaze/nptl/bits/semaphore.h
>  delete mode 100644 sysdeps/nios2/nptl/bits/semaphore.h
>  delete mode 100644 sysdeps/riscv/nptl/bits/semaphore.h
>  delete mode 100644 sysdeps/sh/nptl/bits/semaphore.h
>  delete mode 100644 sysdeps/sparc/nptl/bits/semaphore.h
>  delete mode 100644 sysdeps/unix/sysv/linux/alpha/bits/semaphore.h
>  rename sysdeps/{s390/nptl => unix/sysv/linux}/bits/semaphore.h (100%)
>  delete mode 100644 sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h
>  delete mode 100644 sysdeps/x86/bits/semaphore.h

I just noticed that this also needs an entry in sysdep_headers in
sysdeps/unix/sysv/linux/Makefile

but the build still works for such arches ?
Vineet Gupta May 4, 2020, 9:21 p.m. UTC | #2
On 4/27/20 2:59 PM, Vineet Gupta via Libc-alpha wrote:
> This consolidates the copy-pasted arch specific semaphore header into
> single version (based on s390) which suffices 32-bit and and 64-bit
> arch/ABI based on the canonical WORDSIZE.
> 
> For now I've left out arches which use alternate defines to choose for
> 32 vs 64-bit builds (aarch64, mips) which in theory can also use the same
> header.
> 
> Passes build-many for
>   aarch64-linux-gnu arm-linux-gnueabi arm-linux-gnueabihf
>   riscv64-linux-gnu-rv64imac-lp64 riscv64-linux-gnu-rv64imafdc-lp64
>   x86_64-linux-gnu microblaze-linux-gnu nios2-linux-gnu
> 
> Suggested-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
>  sysdeps/arm/nptl/bits/semaphore.h             | 34 ----------------
>  sysdeps/csky/nptl/bits/semaphore.h            | 35 ----------------
>  sysdeps/hppa/nptl/bits/semaphore.h            | 31 --------------
>  sysdeps/ia64/nptl/bits/semaphore.h            | 35 ----------------
>  sysdeps/microblaze/nptl/bits/semaphore.h      | 32 ---------------
>  sysdeps/nios2/nptl/bits/semaphore.h           | 32 ---------------
>  sysdeps/riscv/nptl/bits/semaphore.h           | 33 ---------------
>  sysdeps/sh/nptl/bits/semaphore.h              | 35 ----------------
>  sysdeps/sparc/nptl/bits/semaphore.h           | 40 -------------------
>  .../unix/sysv/linux/alpha/bits/semaphore.h    | 33 ---------------
>  .../nptl => unix/sysv/linux}/bits/semaphore.h |  0
>  .../unix/sysv/linux/powerpc/bits/semaphore.h  | 40 -------------------
>  sysdeps/x86/bits/semaphore.h                  | 40 -------------------

ping !
Adhemerval Zanella Netto May 5, 2020, 7:05 p.m. UTC | #3
On 27/04/2020 18:59, Vineet Gupta wrote:
> This consolidates the copy-pasted arch specific semaphore header into
> single version (based on s390) which suffices 32-bit and and 64-bit
> arch/ABI based on the canonical WORDSIZE.
> 
> For now I've left out arches which use alternate defines to choose for
> 32 vs 64-bit builds (aarch64, mips) which in theory can also use the same
> header.
> 
> Passes build-many for
>   aarch64-linux-gnu arm-linux-gnueabi arm-linux-gnueabihf
>   riscv64-linux-gnu-rv64imac-lp64 riscv64-linux-gnu-rv64imafdc-lp64
>   x86_64-linux-gnu microblaze-linux-gnu nios2-linux-gnu
> 
> Suggested-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

LGTM with a remark below.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

> ---
>  sysdeps/arm/nptl/bits/semaphore.h             | 34 ----------------
>  sysdeps/csky/nptl/bits/semaphore.h            | 35 ----------------
>  sysdeps/hppa/nptl/bits/semaphore.h            | 31 --------------
>  sysdeps/ia64/nptl/bits/semaphore.h            | 35 ----------------
>  sysdeps/microblaze/nptl/bits/semaphore.h      | 32 ---------------
>  sysdeps/nios2/nptl/bits/semaphore.h           | 32 ---------------
>  sysdeps/riscv/nptl/bits/semaphore.h           | 33 ---------------
>  sysdeps/sh/nptl/bits/semaphore.h              | 35 ----------------
>  sysdeps/sparc/nptl/bits/semaphore.h           | 40 -------------------
>  .../unix/sysv/linux/alpha/bits/semaphore.h    | 33 ---------------
>  .../nptl => unix/sysv/linux}/bits/semaphore.h |  0
>  .../unix/sysv/linux/powerpc/bits/semaphore.h  | 40 -------------------
>  sysdeps/x86/bits/semaphore.h                  | 40 -------------------
>  13 files changed, 420 deletions(-)
>  delete mode 100644 sysdeps/arm/nptl/bits/semaphore.h
>  delete mode 100644 sysdeps/csky/nptl/bits/semaphore.h
>  delete mode 100644 sysdeps/hppa/nptl/bits/semaphore.h
>  delete mode 100644 sysdeps/ia64/nptl/bits/semaphore.h
>  delete mode 100644 sysdeps/microblaze/nptl/bits/semaphore.h
>  delete mode 100644 sysdeps/nios2/nptl/bits/semaphore.h
>  delete mode 100644 sysdeps/riscv/nptl/bits/semaphore.h
>  delete mode 100644 sysdeps/sh/nptl/bits/semaphore.h
>  delete mode 100644 sysdeps/sparc/nptl/bits/semaphore.h
>  delete mode 100644 sysdeps/unix/sysv/linux/alpha/bits/semaphore.h
>  rename sysdeps/{s390/nptl => unix/sysv/linux}/bits/semaphore.h (100%)
>  delete mode 100644 sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h
>  delete mode 100644 sysdeps/x86/bits/semaphore.h
> 
> diff --git a/sysdeps/arm/nptl/bits/semaphore.h b/sysdeps/arm/nptl/bits/semaphore.h
> deleted file mode 100644
> index c93179e64a2e..000000000000
> --- a/sysdeps/arm/nptl/bits/semaphore.h
> +++ /dev/null
> @@ -1,34 +0,0 @@
> -/* Copyright (C) 2002-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 _SEMAPHORE_H
> -# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
> -#endif
> -
> -
> -#define __SIZEOF_SEM_T	16
> -
> -
> -/* Value returned if `sem_open' failed.  */
> -#define SEM_FAILED      ((sem_t *) 0)
> -
> -
> -typedef union
> -{
> -  char __size[__SIZEOF_SEM_T];
> -  long int __align;
> -} sem_t;

Ok.

> diff --git a/sysdeps/csky/nptl/bits/semaphore.h b/sysdeps/csky/nptl/bits/semaphore.h
> deleted file mode 100644
> index 69b37249f5e3..000000000000
> --- a/sysdeps/csky/nptl/bits/semaphore.h
> +++ /dev/null
> @@ -1,35 +0,0 @@
> -/* Machine-specific POSIX semaphore type layouts.  C-SKY 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 _SEMAPHORE_H
> -# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
> -#endif
> -
> -
> -#define __SIZEOF_SEM_T	16
> -
> -
> -/* Value returned if `sem_open' failed.  */
> -#define SEM_FAILED	((sem_t *) 0)
> -
> -
> -typedef union
> -{
> -  char __size[__SIZEOF_SEM_T];
> -  long int __align;
> -} sem_t;

Ok.

> diff --git a/sysdeps/hppa/nptl/bits/semaphore.h b/sysdeps/hppa/nptl/bits/semaphore.h
> deleted file mode 100644
> index 3864e6e16ee2..000000000000
> --- a/sysdeps/hppa/nptl/bits/semaphore.h
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -/* Copyright (C) 2002-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 _SEMAPHORE_H
> -# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
> -#endif
> -
> -#define __SIZEOF_SEM_T	16
> -
> -/* Value returned if `sem_open' failed.  */
> -#define SEM_FAILED      ((sem_t *) 0)
> -
> -typedef union
> -{
> -  char __size[__SIZEOF_SEM_T];
> -  long int __align;
> -} sem_t;

Ok.

> diff --git a/sysdeps/ia64/nptl/bits/semaphore.h b/sysdeps/ia64/nptl/bits/semaphore.h
> deleted file mode 100644
> index 1c52ff27ceee..000000000000
> --- a/sysdeps/ia64/nptl/bits/semaphore.h
> +++ /dev/null
> @@ -1,35 +0,0 @@
> -/* Copyright (C) 2002-2020 Free Software Foundation, Inc.
> -   This file is part of the GNU C Library.
> -   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
> -
> -   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 _SEMAPHORE_H
> -# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
> -#endif
> -
> -
> -#define __SIZEOF_SEM_T	32
> -
> -
> -/* Value returned if `sem_open' failed.  */
> -#define SEM_FAILED      ((sem_t *) 0)
> -
> -
> -typedef union
> -{
> -  char __size[__SIZEOF_SEM_T];
> -  long int __align;
> -} sem_t;

Ok.

> diff --git a/sysdeps/microblaze/nptl/bits/semaphore.h b/sysdeps/microblaze/nptl/bits/semaphore.h
> deleted file mode 100644
> index d5107b55330c..000000000000
> --- a/sysdeps/microblaze/nptl/bits/semaphore.h
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -/* Copyright (C) 2002-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 _SEMAPHORE_H
> -# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
> -#endif
> -
> -#define __SIZEOF_SEM_T	16
> -
> -/* Value returned if `sem_open' failed.  */
> -#define SEM_FAILED	((sem_t *) 0)
> -
> -typedef union
> -{
> -  char __size[__SIZEOF_SEM_T];
> -  long int __align;
> -} sem_t;

Ok.

> diff --git a/sysdeps/nios2/nptl/bits/semaphore.h b/sysdeps/nios2/nptl/bits/semaphore.h
> deleted file mode 100644
> index 7fa2521587c8..000000000000
> --- a/sysdeps/nios2/nptl/bits/semaphore.h
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -/* Machine-specific POSIX semaphore type layouts.  Nios II version.
> -   Copyright (C) 2002-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 _SEMAPHORE_H
> -# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
> -#endif
> -
> -#define __SIZEOF_SEM_T	16
> -
> -/* Value returned if `sem_open' failed.  */
> -#define SEM_FAILED      ((sem_t *) 0)
> -
> -typedef union
> -{
> -  char __size[__SIZEOF_SEM_T];
> -  long int __align;
> -} sem_t;

Ok.

> diff --git a/sysdeps/riscv/nptl/bits/semaphore.h b/sysdeps/riscv/nptl/bits/semaphore.h
> deleted file mode 100644
> index 09cfdebd0d24..000000000000
> --- a/sysdeps/riscv/nptl/bits/semaphore.h
> +++ /dev/null
> @@ -1,33 +0,0 @@
> -/* Machine-specific POSIX semaphore type layouts.  RISC-V version.
> -   Copyright (C) 2002-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 _SEMAPHORE_H
> -# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
> -#endif
> -
> -#define __SIZEOF_SEM_T	(4 * __SIZEOF_POINTER__)
> -
> -/* Value returned if `sem_open' failed.  */
> -#define SEM_FAILED      ((sem_t *) 0)
> -
> -
> -typedef union
> -{
> -  char __size[__SIZEOF_SEM_T];
> -  long int __align;
> -} sem_t;

Ok.

> diff --git a/sysdeps/sh/nptl/bits/semaphore.h b/sysdeps/sh/nptl/bits/semaphore.h
> deleted file mode 100644
> index e7f48eb32b8e..000000000000
> --- a/sysdeps/sh/nptl/bits/semaphore.h
> +++ /dev/null
> @@ -1,35 +0,0 @@
> -/* Copyright (C) 2002-2020 Free Software Foundation, Inc.
> -   This file is part of the GNU C Library.
> -   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
> -
> -   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 _SEMAPHORE_H
> -# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
> -#endif
> -
> -
> -#define __SIZEOF_SEM_T	16
> -
> -
> -/* Value returned if `sem_open' failed.  */
> -#define SEM_FAILED      ((sem_t *) 0)
> -
> -
> -typedef union
> -{
> -  char __size[__SIZEOF_SEM_T];
> -  long int __align;
> -} sem_t;

Ok.

> diff --git a/sysdeps/sparc/nptl/bits/semaphore.h b/sysdeps/sparc/nptl/bits/semaphore.h
> deleted file mode 100644
> index 020fd757d5ad..000000000000
> --- a/sysdeps/sparc/nptl/bits/semaphore.h
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -/* Machine-specific POSIX semaphore type layouts.  SPARC version.
> -   Copyright (C) 2003-2020 Free Software Foundation, Inc.
> -   This file is part of the GNU C Library.
> -   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
> -
> -   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 _SEMAPHORE_H
> -# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
> -#endif
> -
> -#include <bits/wordsize.h>
> -
> -#if __WORDSIZE == 64
> -# define __SIZEOF_SEM_T	32
> -#else
> -# define __SIZEOF_SEM_T	16
> -#endif
> -
> -/* Value returned if `sem_open' failed.  */
> -#define SEM_FAILED      ((sem_t *) 0)
> -
> -
> -typedef union
> -{
> -  char __size[__SIZEOF_SEM_T];
> -  long int __align;
> -} sem_t;

Ok.

> diff --git a/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h b/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h
> deleted file mode 100644
> index ffd8d4a350a7..000000000000
> --- a/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h
> +++ /dev/null
> @@ -1,33 +0,0 @@
> -/* Machine-specific POSIX semaphore type layouts.  Alpha version.
> -   Copyright (C) 2003-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 _SEMAPHORE_H
> -# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
> -#endif
> -
> -# define __SIZEOF_SEM_T	32
> -
> -/* Value returned if `sem_open' failed.  */
> -#define SEM_FAILED      ((sem_t *) 0)
> -
> -
> -typedef union
> -{
> -  char __size[__SIZEOF_SEM_T];
> -  long int __align;
> -} sem_t;

Ok.

> diff --git a/sysdeps/s390/nptl/bits/semaphore.h b/sysdeps/unix/sysv/linux/bits/semaphore.h
> similarity index 100%
> rename from sysdeps/s390/nptl/bits/semaphore.h
> rename to sysdeps/unix/sysv/linux/bits/semaphore.h

Ok, although I think we should handle as a new file: add a online description and
remove any 'Contributed by' line.

> diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h b/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h
> deleted file mode 100644
> index 717e6f82dad9..000000000000
> --- a/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -/* Machine-specific POSIX semaphore type layouts.  PowerPC version.
> -   Copyright (C) 2003-2020 Free Software Foundation, Inc.
> -   This file is part of the GNU C Library.
> -   Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
> -
> -   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 _SEMAPHORE_H
> -# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
> -#endif
> -
> -#include <bits/wordsize.h>
> -
> -#if __WORDSIZE == 64
> -# define __SIZEOF_SEM_T	32
> -#else
> -# define __SIZEOF_SEM_T	16
> -#endif
> -
> -/* Value returned if `sem_open' failed.  */
> -#define SEM_FAILED      ((sem_t *) 0)
> -
> -
> -typedef union
> -{
> -  char __size[__SIZEOF_SEM_T];
> -  long int __align;
> -} sem_t;.

Ok.

> diff --git a/sysdeps/x86/bits/semaphore.h b/sysdeps/x86/bits/semaphore.h
> deleted file mode 100644
> index 299de51fa82b..000000000000
> --- a/sysdeps/x86/bits/semaphore.h
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -/* Copyright (C) 2002-2020 Free Software Foundation, Inc.
> -   This file is part of the GNU C Library.
> -   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
> -
> -   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 _SEMAPHORE_H
> -# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
> -#endif
> -
> -#include <bits/wordsize.h>
> -
> -#if __WORDSIZE == 64
> -# define __SIZEOF_SEM_T	32
> -#else
> -# define __SIZEOF_SEM_T	16
> -#endif
> -
> -
> -/* Value returned if `sem_open' failed.  */
> -#define SEM_FAILED      ((sem_t *) 0)
> -
> -
> -typedef union
> -{
> -  char __size[__SIZEOF_SEM_T];
> -  long int __align;
> -} sem_t;
> 

Ok.
Vineet Gupta May 5, 2020, 7:38 p.m. UTC | #4
On 5/5/20 12:05 PM, Adhemerval Zanella via Libc-alpha wrote:
> 
> 
> On 27/04/2020 18:59, Vineet Gupta wrote:
>> This consolidates the copy-pasted arch specific semaphore header into
>> single version (based on s390) which suffices 32-bit and and 64-bit
>> arch/ABI based on the canonical WORDSIZE.
>>
>> For now I've left out arches which use alternate defines to choose for
>> 32 vs 64-bit builds (aarch64, mips) which in theory can also use the same
>> header.
>>
>> Passes build-many for
>>   aarch64-linux-gnu arm-linux-gnueabi arm-linux-gnueabihf
>>   riscv64-linux-gnu-rv64imac-lp64 riscv64-linux-gnu-rv64imafdc-lp64
>>   x86_64-linux-gnu microblaze-linux-gnu nios2-linux-gnu
>>
>> Suggested-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> 
> LGTM with a remark below.
> 
> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

Thx, could you please also clarify the deal with not having to update
sysdep_headers in sysdeps/unix/sysv/linux/Makefile

...

>> diff --git a/sysdeps/s390/nptl/bits/semaphore.h b/sysdeps/unix/sysv/linux/bits/semaphore.h
>> similarity index 100%
>> rename from sysdeps/s390/nptl/bits/semaphore.h
>> rename to sysdeps/unix/sysv/linux/bits/semaphore.h
> 
> Ok, although I think we should handle as a new file: add a online description and
> remove any 'Contributed by' line.

Will do - and presume it is ok to push to master after that ?

Thx,
-Vineet
Adhemerval Zanella Netto May 5, 2020, 9:02 p.m. UTC | #5
On 27/04/2020 19:13, Vineet Gupta via Libc-alpha wrote:
> On 4/27/20 2:59 PM, Vineet Gupta via Libc-alpha wrote:
>> This consolidates the copy-pasted arch specific semaphore header into
>> single version (based on s390) which suffices 32-bit and and 64-bit
>> arch/ABI based on the canonical WORDSIZE.
>>
>> For now I've left out arches which use alternate defines to choose for
>> 32 vs 64-bit builds (aarch64, mips) which in theory can also use the same
>> header.
>>
>> Passes build-many for
>>   aarch64-linux-gnu arm-linux-gnueabi arm-linux-gnueabihf
>>   riscv64-linux-gnu-rv64imac-lp64 riscv64-linux-gnu-rv64imafdc-lp64
>>   x86_64-linux-gnu microblaze-linux-gnu nios2-linux-gnu
>>
>> Suggested-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
>> ---
>>  sysdeps/arm/nptl/bits/semaphore.h             | 34 ----------------
>>  sysdeps/csky/nptl/bits/semaphore.h            | 35 ----------------
>>  sysdeps/hppa/nptl/bits/semaphore.h            | 31 --------------
>>  sysdeps/ia64/nptl/bits/semaphore.h            | 35 ----------------
>>  sysdeps/microblaze/nptl/bits/semaphore.h      | 32 ---------------
>>  sysdeps/nios2/nptl/bits/semaphore.h           | 32 ---------------
>>  sysdeps/riscv/nptl/bits/semaphore.h           | 33 ---------------
>>  sysdeps/sh/nptl/bits/semaphore.h              | 35 ----------------
>>  sysdeps/sparc/nptl/bits/semaphore.h           | 40 -------------------
>>  .../unix/sysv/linux/alpha/bits/semaphore.h    | 33 ---------------
>>  .../nptl => unix/sysv/linux}/bits/semaphore.h |  0
>>  .../unix/sysv/linux/powerpc/bits/semaphore.h  | 40 -------------------
>>  sysdeps/x86/bits/semaphore.h                  | 40 -------------------
>>  13 files changed, 420 deletions(-)
>>  delete mode 100644 sysdeps/arm/nptl/bits/semaphore.h
>>  delete mode 100644 sysdeps/csky/nptl/bits/semaphore.h
>>  delete mode 100644 sysdeps/hppa/nptl/bits/semaphore.h
>>  delete mode 100644 sysdeps/ia64/nptl/bits/semaphore.h
>>  delete mode 100644 sysdeps/microblaze/nptl/bits/semaphore.h
>>  delete mode 100644 sysdeps/nios2/nptl/bits/semaphore.h
>>  delete mode 100644 sysdeps/riscv/nptl/bits/semaphore.h
>>  delete mode 100644 sysdeps/sh/nptl/bits/semaphore.h
>>  delete mode 100644 sysdeps/sparc/nptl/bits/semaphore.h
>>  delete mode 100644 sysdeps/unix/sysv/linux/alpha/bits/semaphore.h
>>  rename sysdeps/{s390/nptl => unix/sysv/linux}/bits/semaphore.h (100%)
>>  delete mode 100644 sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h
>>  delete mode 100644 sysdeps/x86/bits/semaphore.h
> 
> I just noticed that this also needs an entry in sysdep_headers in
> sysdeps/unix/sysv/linux/Makefile
> 
> but the build still works for such arches ?
> 

It is already covered by nptl/Makefile at:

 25 headers := pthread.h semaphore.h bits/semaphore.h \
Adhemerval Zanella Netto May 5, 2020, 9:37 p.m. UTC | #6
On 05/05/2020 16:38, Vineet Gupta wrote:
> On 5/5/20 12:05 PM, Adhemerval Zanella via Libc-alpha wrote:
>>
>>
>> On 27/04/2020 18:59, Vineet Gupta wrote:
>>> This consolidates the copy-pasted arch specific semaphore header into
>>> single version (based on s390) which suffices 32-bit and and 64-bit
>>> arch/ABI based on the canonical WORDSIZE.
>>>
>>> For now I've left out arches which use alternate defines to choose for
>>> 32 vs 64-bit builds (aarch64, mips) which in theory can also use the same
>>> header.
>>>
>>> Passes build-many for
>>>   aarch64-linux-gnu arm-linux-gnueabi arm-linux-gnueabihf
>>>   riscv64-linux-gnu-rv64imac-lp64 riscv64-linux-gnu-rv64imafdc-lp64
>>>   x86_64-linux-gnu microblaze-linux-gnu nios2-linux-gnu
>>>
>>> Suggested-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
>>
>> LGTM with a remark below.
>>
>> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> 
> Thx, could you please also clarify the deal with not having to update
> sysdep_headers in sysdeps/unix/sysv/linux/Makefile

Done in the original message.

> 
> ...
> 
>>> diff --git a/sysdeps/s390/nptl/bits/semaphore.h b/sysdeps/unix/sysv/linux/bits/semaphore.h
>>> similarity index 100%
>>> rename from sysdeps/s390/nptl/bits/semaphore.h
>>> rename to sysdeps/unix/sysv/linux/bits/semaphore.h
>>
>> Ok, although I think we should handle as a new file: add a online description and
>> remove any 'Contributed by' line.
> 
> Will do - and presume it is ok to push to master after that ?

Yes, thanks!
Vineet Gupta May 5, 2020, 10:59 p.m. UTC | #7
On 5/5/20 12:05 PM, Adhemerval Zanella via Libc-alpha wrote:
>> diff --git a/sysdeps/s390/nptl/bits/semaphore.h b/sysdeps/unix/sysv/linux/bits/semaphore.h
>> similarity index 100%
>> rename from sysdeps/s390/nptl/bits/semaphore.h
>> rename to sysdeps/unix/sysv/linux/bits/semaphore.h
>
> Ok, although I think we should handle as a new file: add a online description and
> remove any 'Contributed by' line.

Ok did explicit add/del but still git rename detection triggers, this time
matching it to x86 version (with 90% similarity). I'm pretty sure in the past
delete/add used to elide renames, perhaps the heuristics have gotten better. AFAIK
there is no gitconfig setting to disable the rename detection.

...
 sysdeps/{x86 => unix/sysv/linux}/bits/semaphore.h |  5 ++---
 sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h  | 40
Adhemerval Zanella Netto May 8, 2020, 1:32 p.m. UTC | #8
On 05/05/2020 19:59, Vineet Gupta wrote:
> On 5/5/20 12:05 PM, Adhemerval Zanella via Libc-alpha wrote:
>>> diff --git a/sysdeps/s390/nptl/bits/semaphore.h b/sysdeps/unix/sysv/linux/bits/semaphore.h
>>> similarity index 100%
>>> rename from sysdeps/s390/nptl/bits/semaphore.h
>>> rename to sysdeps/unix/sysv/linux/bits/semaphore.h
>>
>> Ok, although I think we should handle as a new file: add a online description and
>> remove any 'Contributed by' line.
> 
> Ok did explicit add/del but still git rename detection triggers, this time
> matching it to x86 version (with 90% similarity). I'm pretty sure in the past
> delete/add used to elide renames, perhaps the heuristics have gotten better. AFAIK
> there is no gitconfig setting to disable the rename detection.
> 
> ...
>  sysdeps/{x86 => unix/sysv/linux}/bits/semaphore.h |  5 ++---
>  sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h  | 40
> 

I use both -C (detect copies as well as renames) and -M (detect renames)
with git format-patch and send-email to try avoid such issues. Sometimes
it is required to change the -M threshold to get the rename right.
diff mbox series

Patch

diff --git a/sysdeps/arm/nptl/bits/semaphore.h b/sysdeps/arm/nptl/bits/semaphore.h
deleted file mode 100644
index c93179e64a2e..000000000000
--- a/sysdeps/arm/nptl/bits/semaphore.h
+++ /dev/null
@@ -1,34 +0,0 @@ 
-/* Copyright (C) 2002-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 _SEMAPHORE_H
-# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-#endif
-
-
-#define __SIZEOF_SEM_T	16
-
-
-/* Value returned if `sem_open' failed.  */
-#define SEM_FAILED      ((sem_t *) 0)
-
-
-typedef union
-{
-  char __size[__SIZEOF_SEM_T];
-  long int __align;
-} sem_t;
diff --git a/sysdeps/csky/nptl/bits/semaphore.h b/sysdeps/csky/nptl/bits/semaphore.h
deleted file mode 100644
index 69b37249f5e3..000000000000
--- a/sysdeps/csky/nptl/bits/semaphore.h
+++ /dev/null
@@ -1,35 +0,0 @@ 
-/* Machine-specific POSIX semaphore type layouts.  C-SKY 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 _SEMAPHORE_H
-# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-#endif
-
-
-#define __SIZEOF_SEM_T	16
-
-
-/* Value returned if `sem_open' failed.  */
-#define SEM_FAILED	((sem_t *) 0)
-
-
-typedef union
-{
-  char __size[__SIZEOF_SEM_T];
-  long int __align;
-} sem_t;
diff --git a/sysdeps/hppa/nptl/bits/semaphore.h b/sysdeps/hppa/nptl/bits/semaphore.h
deleted file mode 100644
index 3864e6e16ee2..000000000000
--- a/sysdeps/hppa/nptl/bits/semaphore.h
+++ /dev/null
@@ -1,31 +0,0 @@ 
-/* Copyright (C) 2002-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 _SEMAPHORE_H
-# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-#endif
-
-#define __SIZEOF_SEM_T	16
-
-/* Value returned if `sem_open' failed.  */
-#define SEM_FAILED      ((sem_t *) 0)
-
-typedef union
-{
-  char __size[__SIZEOF_SEM_T];
-  long int __align;
-} sem_t;
diff --git a/sysdeps/ia64/nptl/bits/semaphore.h b/sysdeps/ia64/nptl/bits/semaphore.h
deleted file mode 100644
index 1c52ff27ceee..000000000000
--- a/sysdeps/ia64/nptl/bits/semaphore.h
+++ /dev/null
@@ -1,35 +0,0 @@ 
-/* Copyright (C) 2002-2020 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   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 _SEMAPHORE_H
-# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-#endif
-
-
-#define __SIZEOF_SEM_T	32
-
-
-/* Value returned if `sem_open' failed.  */
-#define SEM_FAILED      ((sem_t *) 0)
-
-
-typedef union
-{
-  char __size[__SIZEOF_SEM_T];
-  long int __align;
-} sem_t;
diff --git a/sysdeps/microblaze/nptl/bits/semaphore.h b/sysdeps/microblaze/nptl/bits/semaphore.h
deleted file mode 100644
index d5107b55330c..000000000000
--- a/sysdeps/microblaze/nptl/bits/semaphore.h
+++ /dev/null
@@ -1,32 +0,0 @@ 
-/* Copyright (C) 2002-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 _SEMAPHORE_H
-# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-#endif
-
-#define __SIZEOF_SEM_T	16
-
-/* Value returned if `sem_open' failed.  */
-#define SEM_FAILED	((sem_t *) 0)
-
-typedef union
-{
-  char __size[__SIZEOF_SEM_T];
-  long int __align;
-} sem_t;
diff --git a/sysdeps/nios2/nptl/bits/semaphore.h b/sysdeps/nios2/nptl/bits/semaphore.h
deleted file mode 100644
index 7fa2521587c8..000000000000
--- a/sysdeps/nios2/nptl/bits/semaphore.h
+++ /dev/null
@@ -1,32 +0,0 @@ 
-/* Machine-specific POSIX semaphore type layouts.  Nios II version.
-   Copyright (C) 2002-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 _SEMAPHORE_H
-# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-#endif
-
-#define __SIZEOF_SEM_T	16
-
-/* Value returned if `sem_open' failed.  */
-#define SEM_FAILED      ((sem_t *) 0)
-
-typedef union
-{
-  char __size[__SIZEOF_SEM_T];
-  long int __align;
-} sem_t;
diff --git a/sysdeps/riscv/nptl/bits/semaphore.h b/sysdeps/riscv/nptl/bits/semaphore.h
deleted file mode 100644
index 09cfdebd0d24..000000000000
--- a/sysdeps/riscv/nptl/bits/semaphore.h
+++ /dev/null
@@ -1,33 +0,0 @@ 
-/* Machine-specific POSIX semaphore type layouts.  RISC-V version.
-   Copyright (C) 2002-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 _SEMAPHORE_H
-# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-#endif
-
-#define __SIZEOF_SEM_T	(4 * __SIZEOF_POINTER__)
-
-/* Value returned if `sem_open' failed.  */
-#define SEM_FAILED      ((sem_t *) 0)
-
-
-typedef union
-{
-  char __size[__SIZEOF_SEM_T];
-  long int __align;
-} sem_t;
diff --git a/sysdeps/sh/nptl/bits/semaphore.h b/sysdeps/sh/nptl/bits/semaphore.h
deleted file mode 100644
index e7f48eb32b8e..000000000000
--- a/sysdeps/sh/nptl/bits/semaphore.h
+++ /dev/null
@@ -1,35 +0,0 @@ 
-/* Copyright (C) 2002-2020 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   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 _SEMAPHORE_H
-# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-#endif
-
-
-#define __SIZEOF_SEM_T	16
-
-
-/* Value returned if `sem_open' failed.  */
-#define SEM_FAILED      ((sem_t *) 0)
-
-
-typedef union
-{
-  char __size[__SIZEOF_SEM_T];
-  long int __align;
-} sem_t;
diff --git a/sysdeps/sparc/nptl/bits/semaphore.h b/sysdeps/sparc/nptl/bits/semaphore.h
deleted file mode 100644
index 020fd757d5ad..000000000000
--- a/sysdeps/sparc/nptl/bits/semaphore.h
+++ /dev/null
@@ -1,40 +0,0 @@ 
-/* Machine-specific POSIX semaphore type layouts.  SPARC version.
-   Copyright (C) 2003-2020 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   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 _SEMAPHORE_H
-# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-#endif
-
-#include <bits/wordsize.h>
-
-#if __WORDSIZE == 64
-# define __SIZEOF_SEM_T	32
-#else
-# define __SIZEOF_SEM_T	16
-#endif
-
-/* Value returned if `sem_open' failed.  */
-#define SEM_FAILED      ((sem_t *) 0)
-
-
-typedef union
-{
-  char __size[__SIZEOF_SEM_T];
-  long int __align;
-} sem_t;
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h b/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h
deleted file mode 100644
index ffd8d4a350a7..000000000000
--- a/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h
+++ /dev/null
@@ -1,33 +0,0 @@ 
-/* Machine-specific POSIX semaphore type layouts.  Alpha version.
-   Copyright (C) 2003-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 _SEMAPHORE_H
-# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-#endif
-
-# define __SIZEOF_SEM_T	32
-
-/* Value returned if `sem_open' failed.  */
-#define SEM_FAILED      ((sem_t *) 0)
-
-
-typedef union
-{
-  char __size[__SIZEOF_SEM_T];
-  long int __align;
-} sem_t;
diff --git a/sysdeps/s390/nptl/bits/semaphore.h b/sysdeps/unix/sysv/linux/bits/semaphore.h
similarity index 100%
rename from sysdeps/s390/nptl/bits/semaphore.h
rename to sysdeps/unix/sysv/linux/bits/semaphore.h
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h b/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h
deleted file mode 100644
index 717e6f82dad9..000000000000
--- a/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h
+++ /dev/null
@@ -1,40 +0,0 @@ 
-/* Machine-specific POSIX semaphore type layouts.  PowerPC version.
-   Copyright (C) 2003-2020 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
-
-   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 _SEMAPHORE_H
-# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-#endif
-
-#include <bits/wordsize.h>
-
-#if __WORDSIZE == 64
-# define __SIZEOF_SEM_T	32
-#else
-# define __SIZEOF_SEM_T	16
-#endif
-
-/* Value returned if `sem_open' failed.  */
-#define SEM_FAILED      ((sem_t *) 0)
-
-
-typedef union
-{
-  char __size[__SIZEOF_SEM_T];
-  long int __align;
-} sem_t;
diff --git a/sysdeps/x86/bits/semaphore.h b/sysdeps/x86/bits/semaphore.h
deleted file mode 100644
index 299de51fa82b..000000000000
--- a/sysdeps/x86/bits/semaphore.h
+++ /dev/null
@@ -1,40 +0,0 @@ 
-/* Copyright (C) 2002-2020 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   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 _SEMAPHORE_H
-# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-#endif
-
-#include <bits/wordsize.h>
-
-#if __WORDSIZE == 64
-# define __SIZEOF_SEM_T	32
-#else
-# define __SIZEOF_SEM_T	16
-#endif
-
-
-/* Value returned if `sem_open' failed.  */
-#define SEM_FAILED      ((sem_t *) 0)
-
-
-typedef union
-{
-  char __size[__SIZEOF_SEM_T];
-  long int __align;
-} sem_t;