Browse Source

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.
Rich Felker 6 years ago
parent
commit
16a522bab0
1 changed files with 6 additions and 0 deletions
  1. 6 0
      src/thread/pthread_key_create.c

+ 6 - 0
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 = {