From 16a522bab047f3014f08302042ab90cf5812b131 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Wed, 16 Jan 2019 23:50:08 -0500 Subject: [PATCH] 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. --- src/thread/pthread_key_create.c | 6 ++++++ 1 file changed, 6 insertions(+) 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 = {