Patchwork [3/5] Remove sparc sem_wait

login
register
mail settings
Submitter Adhemerval Zanella Netto
Date Aug. 22, 2016, 2:27 p.m.
Message ID <1471876053-780-3-git-send-email-adhemerval.zanella@linaro.org>
Download mbox | patch
Permalink /patch/14843/
State New
Headers show

Comments

Adhemerval Zanella Netto - Aug. 22, 2016, 2:27 p.m.
This patch removes the sparc32 sem_wait.c implementation since it is
identical to default nptl one.  The sparcv9 is no longer required with
the removal.

Checked with a sparcv9 build.

	* sysdeps/sparc/sparc32/sem_wait.c: Remove file.
	* sysdeps/sparc/sparc32/sparcv9/sem_wait.c: Likewise.
---
 sysdeps/sparc/sparc32/sem_wait.c         | 93 --------------------------------
 sysdeps/sparc/sparc32/sparcv9/sem_wait.c |  1 -
 3 files changed, 3 insertions(+), 94 deletions(-)
 delete mode 100644 sysdeps/sparc/sparc32/sem_wait.c
 delete mode 100644 sysdeps/sparc/sparc32/sparcv9/sem_wait.c
Torvald Riegel - Sept. 5, 2016, 5:23 p.m.
On Mon, 2016-08-22 at 11:27 -0300, Adhemerval Zanella wrote:
> This patch removes the sparc32 sem_wait.c implementation since it is
> identical to default nptl one.  The sparcv9 is no longer required with
> the removal.

OK.

Patch

diff --git a/sysdeps/sparc/sparc32/sem_wait.c b/sysdeps/sparc/sparc32/sem_wait.c
deleted file mode 100644
index 84b523a..0000000
--- a/sysdeps/sparc/sparc32/sem_wait.c
+++ /dev/null
@@ -1,93 +0,0 @@ 
-/* sem_wait -- wait on a semaphore.  Generic futex-using version.
-   Copyright (C) 2003-2016 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
-   <http://www.gnu.org/licenses/>.  */
-
-#include <lowlevellock.h>	/* lll_futex* used by the old code.  */
-#include "sem_waitcommon.c"
-
-int
-__new_sem_wait (sem_t *sem)
-{
-  if (__new_sem_wait_fast ((struct new_sem *) sem, 0) == 0)
-    return 0;
-  else
-    return __new_sem_wait_slow((struct new_sem *) sem, NULL);
-}
-versioned_symbol (libpthread, __new_sem_wait, sem_wait, GLIBC_2_1);
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_1)
-int
-attribute_compat_text_section
-__old_sem_wait (sem_t *sem)
-{
-  int *futex = (int *) sem;
-  int err;
-
-  do
-    {
-      if (atomic_decrement_if_positive (futex) > 0)
-	return 0;
-
-      /* Enable asynchronous cancellation.  Required by the standard.  */
-      int oldtype = __pthread_enable_asynccancel ();
-
-      /* Always assume the semaphore is shared.  */
-      err = lll_futex_wait (futex, 0, LLL_SHARED);
-
-      /* Disable asynchronous cancellation.  */
-      __pthread_disable_asynccancel (oldtype);
-    }
-  while (err == 0 || err == -EWOULDBLOCK);
-
-  __set_errno (-err);
-  return -1;
-}
-
-compat_symbol (libpthread, __old_sem_wait, sem_wait, GLIBC_2_0);
-#endif
-
-int
-__new_sem_trywait (sem_t *sem)
-{
-  /* We must not fail spuriously, so require a definitive result even if this
-     may lead to a long execution time.  */
-  if (__new_sem_wait_fast ((struct new_sem *) sem, 1) == 0)
-    return 0;
-  __set_errno (EAGAIN);
-  return -1;
-}
-versioned_symbol (libpthread, __new_sem_trywait, sem_trywait, GLIBC_2_1);
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_1)
-int
-__old_sem_trywait (sem_t *sem)
-{
-  int *futex = (int *) sem;
-  int val;
-
-  if (*futex > 0)
-    {
-      val = atomic_decrement_if_positive (futex);
-      if (val > 0)
-	return 0;
-    }
-
-  __set_errno (EAGAIN);
-  return -1;
-}
-compat_symbol (libpthread, __old_sem_trywait, sem_trywait, GLIBC_2_0);
-#endif
diff --git a/sysdeps/sparc/sparc32/sparcv9/sem_wait.c b/sysdeps/sparc/sparc32/sparcv9/sem_wait.c
deleted file mode 100644
index bccdaed..0000000
--- a/sysdeps/sparc/sparc32/sparcv9/sem_wait.c
+++ /dev/null
@@ -1 +0,0 @@ 
-#include <nptl/sem_wait.c>