aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/htl
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2020-06-24 13:38:08 +0200
committerFlorian Weimer <fweimer@redhat.com>2020-06-24 13:38:08 +0200
commit1fb7dc751edc462f6954b9c16dd126bf48a1df18 (patch)
treedf7428429da634a874d6a6e97b19daf05e94c27b /sysdeps/htl
parent6f3331f26d2ee5d210ba768389828c391750f7a0 (diff)
downloadglibc-1fb7dc751edc462f6954b9c16dd126bf48a1df18.tar
glibc-1fb7dc751edc462f6954b9c16dd126bf48a1df18.tar.gz
glibc-1fb7dc751edc462f6954b9c16dd126bf48a1df18.tar.bz2
glibc-1fb7dc751edc462f6954b9c16dd126bf48a1df18.zip
htl: Add wrapper header for <semaphore.h> with hidden __sem_post
This is required to avoid a check-localplt failure due to a sem_post call through the PLT. Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Diffstat (limited to 'sysdeps/htl')
-rw-r--r--sysdeps/htl/include/semaphore.h9
-rw-r--r--sysdeps/htl/sem-post.c2
-rw-r--r--sysdeps/htl/sem-timedwait.c2
3 files changed, 11 insertions, 2 deletions
diff --git a/sysdeps/htl/include/semaphore.h b/sysdeps/htl/include/semaphore.h
new file mode 100644
index 0000000000..58fa2bf341
--- /dev/null
+++ b/sysdeps/htl/include/semaphore.h
@@ -0,0 +1,9 @@
+#ifndef _SEMAPHORE_H
+#include_next <semaphore.h>
+
+#ifndef _ISOMAC
+extern __typeof (sem_post) __sem_post;
+libpthread_hidden_proto (__sem_post)
+#endif
+
+#endif
diff --git a/sysdeps/htl/sem-post.c b/sysdeps/htl/sem-post.c
index fd0c6338c6..720b73a059 100644
--- a/sysdeps/htl/sem-post.c
+++ b/sysdeps/htl/sem-post.c
@@ -64,5 +64,5 @@ __sem_post (sem_t *sem)
return 0;
}
-
+libpthread_hidden_def (__sem_post)
strong_alias (__sem_post, sem_post);
diff --git a/sysdeps/htl/sem-timedwait.c b/sysdeps/htl/sem-timedwait.c
index fffdf36467..5095d49b28 100644
--- a/sysdeps/htl/sem-timedwait.c
+++ b/sysdeps/htl/sem-timedwait.c
@@ -167,7 +167,7 @@ out_locked:
{
if (ret == 0 && ctx.cancel_wake == 0)
/* We were cancelled while waking up with a token, put it back. */
- sem_post (sem);
+ __sem_post (sem);
__pthread_exit (PTHREAD_CANCELED);
}