diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libc/gen/getutxent.c | 5 | ||||
-rw-r--r-- | lib/libc/gen/utxdb.c | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/lib/libc/gen/getutxent.c b/lib/libc/gen/getutxent.c index 4e60868..a2e938a 100644 --- a/lib/libc/gen/getutxent.c +++ b/lib/libc/gen/getutxent.c @@ -38,8 +38,13 @@ __FBSDID("$FreeBSD$"); #include "utxdb.h" #include "un-namespace.h" +#ifdef __NO_TLS static FILE *uf = NULL; static int udb; +#else +static _Thread_local FILE *uf = NULL; +static _Thread_local int udb; +#endif int setutxdb(int db, const char *file) diff --git a/lib/libc/gen/utxdb.c b/lib/libc/gen/utxdb.c index 743629d..6667129 100644 --- a/lib/libc/gen/utxdb.c +++ b/lib/libc/gen/utxdb.c @@ -126,7 +126,11 @@ utx_to_futx(const struct utmpx *ut, struct futx *fu) struct utmpx * futx_to_utx(const struct futx *fu) { +#ifdef __NO_TLS static struct utmpx *ut; +#else + static _Thread_local struct utmpx *ut; +#endif if (ut == NULL) { ut = calloc(1, sizeof *ut); |