summaryrefslogtreecommitdiff
path: root/src/thread
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2019-01-16 23:50:08 -0500
committerRich Felker <dalias@aerifal.cx>2019-01-16 23:50:08 -0500
commit16a522bab047f3014f08302042ab90cf5812b131 (patch)
tree6b6b4b74b3f5d9c08311b447f31d7b8f35e0dc45 /src/thread
parentde7dc1318f493184b20f7661bc12b1829b957b67 (diff)
downloadmusl-16a522bab047f3014f08302042ab90cf5812b131.tar.gz
fix unintended linking dependency of pthread_key_create on __synccall
commit 84d061d5a31c9c773e29e1e2b1ffe8cb9557bc58 attempted to do this already, but omitted from pthread_key_create.c the weak definition of __pthread_key_delete_synccall, so that the definition provided by pthread_key_delete.c was always pulled in. based on patch by Markus Wichmann, but with a weak alias rather than weak reference for consistency/policy about dependence on tooling features.
Diffstat (limited to 'src/thread')
-rw-r--r--src/thread/pthread_key_create.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/thread/pthread_key_create.c b/src/thread/pthread_key_create.c
index e26f199c..0903d48f 100644
--- a/src/thread/pthread_key_create.c
+++ b/src/thread/pthread_key_create.c
@@ -35,6 +35,12 @@ static void clean_dirty_tsd_callback(void *p)
if (args->caller == self) args->ret = 0;
}
+static void dummy2(void (*f)(void *), void *p)
+{
+}
+
+weak_alias(dummy2, __pthread_key_delete_synccall);
+
static int clean_dirty_tsd(void)
{
struct cleanup_args args = {