about summary refs log tree commit diff
path: root/nptl/sem_open.c
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2016-08-19 15:30:01 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2016-09-15 11:13:10 -0300
commit980d25d53e748abd3365aeec0a1ccd1316b4e6d6 (patch)
tree2f19f774e72a85bf2daa6551b88c272dce2aa294 /nptl/sem_open.c
parent80d8cb91dee8bdcc4e430b3e2620d95f89b1ee0b (diff)
downloadglibc-980d25d53e748abd3365aeec0a1ccd1316b4e6d6.tar.gz
glibc-980d25d53e748abd3365aeec0a1ccd1316b4e6d6.tar.xz
glibc-980d25d53e748abd3365aeec0a1ccd1316b4e6d6.zip
nptl: Consolidate sem_open implementations
Current sparc32 sem_open and default one only differ on:

  1. Default one contains a 'futex_supports_pshared' check.
  2. sem.newsem.pad is initialized to zero.

This patch removes sparc32 and sparc32v9 sem_open arch specific
implementation and instead set sparc32 to use nptl default one.
Using 1. is fine since it should always evaluate 0 for Linux
(an optimized away by the compiler). Adding 2. to default
implementation should be ok since 'pad' field is used mainly
on sparc32 code.

I checked on i686 and checked a sparc32v9 build.

	* nptl/sem_open.c (sem_open): Init pad value to 0.
	* sysdeps/sparc/sparc32/sem_open.c: Remove file.
	* sysdeps/sparc/sparc32/sparcv9/sem_open.c: Likewise.
Diffstat (limited to 'nptl/sem_open.c')
-rw-r--r--nptl/sem_open.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/nptl/sem_open.c b/nptl/sem_open.c
index 911b1f30a9..5b45fadd71 100644
--- a/nptl/sem_open.c
+++ b/nptl/sem_open.c
@@ -207,6 +207,8 @@ sem_open (const char *name, int oflag, ...)
       sem.newsem.data = value;
 #else
       sem.newsem.value = value << SEM_VALUE_SHIFT;
+      /* pad is used as a mutex on pre-v9 sparc and ignored otherwise.  */
+      sem.newsem.pad = 0;
       sem.newsem.nwaiters = 0;
 #endif
       /* This always is a shared semaphore.  */