Message ID | 20200423014126.10417-5-vgupta@synopsys.com |
---|---|
State | Superseded |
Headers |
Return-Path: <Vineet.Gupta1@synopsys.com> X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from smtprelay-out1.synopsys.com (smtprelay-out1.synopsys.com [149.117.73.133]) by sourceware.org (Postfix) with ESMTPS id 26B7A3851C08 for <libc-alpha@sourceware.org>; Thu, 23 Apr 2020 01:41:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 26B7A3851C08 Received: from mailhost.synopsys.com (sv2-mailhost2.synopsys.com [10.205.2.134]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id 5B4CC4016B; Thu, 23 Apr 2020 01:41:31 +0000 (UTC) Received: from vineetg-Latitude-7400.internal.synopsys.com (unknown [10.13.183.89]) by mailhost.synopsys.com (Postfix) with ESMTP id 47F7EA00A1; Thu, 23 Apr 2020 01:41:31 +0000 (UTC) From: Vineet Gupta <Vineet.Gupta1@synopsys.com> To: libc-alpha@sourceware.org Cc: linux-snps-arc@lists.infradead.org, Vineet Gupta <Vineet.Gupta1@synopsys.com> Subject: [PATCH v6 04/13] ARC: Atomics and Locking primitives Date: Wed, 22 Apr 2020 18:41:17 -0700 Message-Id: <20200423014126.10417-5-vgupta@synopsys.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200423014126.10417-1-vgupta@synopsys.com> References: <20200423014126.10417-1-vgupta@synopsys.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-24.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT, 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 <libc-alpha.sourceware.org> List-Unsubscribe: <http://sourceware.org/mailman/options/libc-alpha>, <mailto:libc-alpha-request@sourceware.org?subject=unsubscribe> List-Archive: <https://sourceware.org/pipermail/libc-alpha/> List-Post: <mailto:libc-alpha@sourceware.org> List-Help: <mailto:libc-alpha-request@sourceware.org?subject=help> List-Subscribe: <http://sourceware.org/mailman/listinfo/libc-alpha>, <mailto:libc-alpha-request@sourceware.org?subject=subscribe> X-List-Received-Date: Thu, 23 Apr 2020 01:41:36 -0000 |
Series |
glibc port to ARC processors
|
|
Commit Message
Vineet Gupta
April 23, 2020, 1:41 a.m. UTC
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
---
sysdeps/arc/atomic-machine.h | 69 +++++++++++++++++++++++++++++++
sysdeps/arc/nptl/bits/semaphore.h | 32 ++++++++++++++
2 files changed, 101 insertions(+)
create mode 100644 sysdeps/arc/atomic-machine.h
create mode 100644 sysdeps/arc/nptl/bits/semaphore.h
Comments
On 22/04/2020 22:41, Vineet Gupta via Libc-alpha wrote: > Signed-off-by: Vineet Gupta <vgupta@synopsys.com> glibc uses copyright assignment to the FSF for contributions, and not the DCO. > --- > sysdeps/arc/atomic-machine.h | 69 +++++++++++++++++++++++++++++++ > sysdeps/arc/nptl/bits/semaphore.h | 32 ++++++++++++++ > 2 files changed, 101 insertions(+) > create mode 100644 sysdeps/arc/atomic-machine.h > create mode 100644 sysdeps/arc/nptl/bits/semaphore.h > > diff --git a/sysdeps/arc/nptl/bits/semaphore.h b/sysdeps/arc/nptl/bits/semaphore.h > new file mode 100644 > index 000000000000..772dc4cb9b01 > --- /dev/null > +++ b/sysdeps/arc/nptl/bits/semaphore.h This might a good candidate to a refactor to add a Linux default one, thus avoiding any new architecture to copy/paste it. > @@ -0,0 +1,32 @@ > +/* Machine-specific POSIX semaphore type layouts. ARC 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; >
On 4/23/20 10:20 AM, Adhemerval Zanella via Libc-alpha wrote: > > > On 22/04/2020 22:41, Vineet Gupta via Libc-alpha wrote: >> Signed-off-by: Vineet Gupta <vgupta@synopsys.com> > > glibc uses copyright assignment to the FSF for contributions, and not > the DCO. Ok removed from all patches. >> --- >> sysdeps/arc/atomic-machine.h | 69 +++++++++++++++++++++++++++++++ >> sysdeps/arc/nptl/bits/semaphore.h | 32 ++++++++++++++ >> 2 files changed, 101 insertions(+) >> create mode 100644 sysdeps/arc/atomic-machine.h >> create mode 100644 sysdeps/arc/nptl/bits/semaphore.h >> > >> diff --git a/sysdeps/arc/nptl/bits/semaphore.h b/sysdeps/arc/nptl/bits/semaphore.h >> new file mode 100644 >> index 000000000000..772dc4cb9b01 >> --- /dev/null >> +++ b/sysdeps/arc/nptl/bits/semaphore.h > > This might a good candidate to a refactor to add a Linux default one, > thus avoiding any new architecture to copy/paste it. Sure. (1). s390, sparc: __SIZEOF_SEM_T {16,32} if WORDSIZE == {32,64} (2). arc, arm, csky, hppa, microblaze, nios2, sh:__SIZEOF_SEM_T 16 (32-bit arch) (3). ia64: __SIZEOF_SEM_T 16 (64-bit only) (4). aarch64, mips, riscv are bimodal too but use arch specific knobs to build for 32/64 bit. Can we change 2, 3, 4, to use generic mechanism of (1) ? The constraints come automatically given WORDSIZE will be function of arch + ABI (ILP32, LP64 etc) Or else we can have (2) be the Linux default version and all others come from arch sysdep.
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 !
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.
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
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 \
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!
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
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 --git a/sysdeps/arc/atomic-machine.h b/sysdeps/arc/atomic-machine.h new file mode 100644 index 000000000000..6cf128dc7fa8 --- /dev/null +++ b/sysdeps/arc/atomic-machine.h @@ -0,0 +1,69 @@ +/* Low-level functions for atomic operations. ARC version. + Copyright (C) 2012-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 _ARC_BITS_ATOMIC_H +#define _ARC_BITS_ATOMIC_H 1 + +#include <stdint.h> + +typedef int32_t atomic32_t; +typedef uint32_t uatomic32_t; +typedef int_fast32_t atomic_fast32_t; +typedef uint_fast32_t uatomic_fast32_t; + +typedef intptr_t atomicptr_t; +typedef uintptr_t uatomicptr_t; +typedef intmax_t atomic_max_t; +typedef uintmax_t uatomic_max_t; + +#define __HAVE_64B_ATOMICS 0 +#define USE_ATOMIC_COMPILER_BUILTINS 1 + +/* ARC does have legacy atomic EX reg, [mem] instruction but the micro-arch + is not as optimal as LLOCK/SCOND specially for SMP. */ +#define ATOMIC_EXCHANGE_USES_CAS 1 + +#define __arch_compare_and_exchange_bool_8_acq(mem, newval, oldval) \ + (abort (), 0) +#define __arch_compare_and_exchange_bool_16_acq(mem, newval, oldval) \ + (abort (), 0) +#define __arch_compare_and_exchange_bool_64_acq(mem, newval, oldval) \ + (abort (), 0) + +#define __arch_compare_and_exchange_val_8_int(mem, newval, oldval, model) \ + (abort (), (__typeof (*mem)) 0) +#define __arch_compare_and_exchange_val_16_int(mem, newval, oldval, model) \ + (abort (), (__typeof (*mem)) 0) +#define __arch_compare_and_exchange_val_64_int(mem, newval, oldval, model) \ + (abort (), (__typeof (*mem)) 0) + +#define __arch_compare_and_exchange_val_32_int(mem, newval, oldval, model) \ + ({ \ + typeof (*mem) __oldval = (oldval); \ + __atomic_compare_exchange_n (mem, (void *) &__oldval, newval, 0, \ + model, __ATOMIC_RELAXED); \ + __oldval; \ + }) + +#define atomic_compare_and_exchange_val_acq(mem, new, old) \ + __atomic_val_bysize (__arch_compare_and_exchange_val, int, \ + mem, new, old, __ATOMIC_ACQUIRE) + +#define atomic_full_barrier() ({ asm volatile ("dmb 3":::"memory"); }) + +#endif /* _ARC_BITS_ATOMIC_H */ diff --git a/sysdeps/arc/nptl/bits/semaphore.h b/sysdeps/arc/nptl/bits/semaphore.h new file mode 100644 index 000000000000..772dc4cb9b01 --- /dev/null +++ b/sysdeps/arc/nptl/bits/semaphore.h @@ -0,0 +1,32 @@ +/* Machine-specific POSIX semaphore type layouts. ARC 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;