From: Bruno Haible Date: Mon, 14 Dec 2020 09:05:44 +0000 (+0100) Subject: Update after gnulib changed. X-Git-Tag: v0.22~286 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d9395be843defd8dff9ef312c048e86d140454da;p=thirdparty%2Fgettext.git Update after gnulib changed. * gettext-runtime/intl/threadlib.c: Update from gnulib. --- diff --git a/gettext-runtime/intl/threadlib.c b/gettext-runtime/intl/threadlib.c index 649810b7e..2e134228f 100644 --- a/gettext-runtime/intl/threadlib.c +++ b/gettext-runtime/intl/threadlib.c @@ -1,5 +1,5 @@ /* Multithreading primitives. - Copyright (C) 2005-2009 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -24,11 +24,44 @@ /* Use the POSIX threads library. */ +# include # include # include # if PTHREAD_IN_USE_DETECTION_HARD +# if defined __FreeBSD__ || defined __DragonFly__ /* FreeBSD */ + +/* Test using pthread_key_create. */ + +int +glthread_in_use (void) +{ + static int tested; + static int result; /* 1: linked with -lpthread, 0: only with libc */ + + if (!tested) + { + pthread_key_t key; + int err = pthread_key_create (&key, NULL); + + if (err == ENOSYS) + result = 0; + else + { + result = 1; + if (err == 0) + pthread_key_delete (key); + } + tested = 1; + } + return result; +} + +# else /* Solaris, HP-UX */ + +/* Test using pthread_create. */ + /* The function to be executed by a dummy thread. */ static void * dummy_thread_func (void *arg) @@ -62,6 +95,8 @@ glthread_in_use (void) return result; } +# endif + # endif #endif