Index: sys/sys/tls.h =================================================================== RCS file: /cvsroot/src/sys/sys/tls.h,v retrieving revision 1.2 diff -u -r1.2 tls.h --- sys/sys/tls.h 19 Nov 2017 07:41:52 -0000 1.2 +++ sys/sys/tls.h 11 Sep 2020 14:07:47 -0000 @@ -53,6 +53,7 @@ __BEGIN_PUBLIC_DECLS struct tls_tcb *_rtld_tls_allocate(void); +struct tls_tcb *_rtld_tls_self(void); void _rtld_tls_free(struct tls_tcb *); __END_PUBLIC_DECLS #endif /* __HAVE_TLS_VARIANT_I || __HAVE_TLS_VARIANT_II */ Index: libexec/ld.elf_so/tls.c =================================================================== RCS file: /cvsroot/src/libexec/ld.elf_so/tls.c,v retrieving revision 1.14 diff -u -r1.14 tls.c --- libexec/ld.elf_so/tls.c 5 Nov 2019 22:22:42 -0000 1.14 +++ libexec/ld.elf_so/tls.c 11 Sep 2020 14:07:47 -0000 @@ -166,6 +166,20 @@ return tcb; } +struct tls_tcb * +_rtld_tls_self(void) +{ + struct tls_tcb *tcb; + +#ifdef __HAVE___LWP_GETTCB_FAST + tcb = __lwp_gettcb_fast(); +#else + tcb = __lwp_getprivate_fast(); +#endif + + return tcb; +} + void _rtld_tls_free(struct tls_tcb *tcb) {