diff options
author | Rich Felker <dalias@aerifal.cx> | 2019-01-16 23:50:08 -0500 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2019-01-16 23:50:08 -0500 |
commit | 16a522bab047f3014f08302042ab90cf5812b131 (patch) | |
tree | 6b6b4b74b3f5d9c08311b447f31d7b8f35e0dc45 | |
parent | de7dc1318f493184b20f7661bc12b1829b957b67 (diff) | |
download | musl-16a522bab047f3014f08302042ab90cf5812b131.tar.gz musl-16a522bab047f3014f08302042ab90cf5812b131.tar.xz musl-16a522bab047f3014f08302042ab90cf5812b131.zip |
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.
-rw-r--r-- | src/thread/pthread_key_create.c | 6 |
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 = { |