aboutsummaryrefslogtreecommitdiff
path: root/nptl
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
parent80d8cb91dee8bdcc4e430b3e2620d95f89b1ee0b (diff)
downloadglibc-980d25d53e748abd3365aeec0a1ccd1316b4e6d6.zip
glibc-980d25d53e748abd3365aeec0a1ccd1316b4e6d6.tar.gz
glibc-980d25d53e748abd3365aeec0a1ccd1316b4e6d6.tar.bz2
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')
-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 911b1f3..5b45fad 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. */