diff options
Diffstat (limited to 'package/freeradius-server/patches/patch-src_include_threads_h')
| -rw-r--r-- | package/freeradius-server/patches/patch-src_include_threads_h | 33 | 
1 files changed, 33 insertions, 0 deletions
| diff --git a/package/freeradius-server/patches/patch-src_include_threads_h b/package/freeradius-server/patches/patch-src_include_threads_h new file mode 100644 index 000000000..3011af0a9 --- /dev/null +++ b/package/freeradius-server/patches/patch-src_include_threads_h @@ -0,0 +1,33 @@ +--- freeradius-server-3.2.3.orig/src/include/threads.h	2023-05-26 15:56:52.000000000 +0200 ++++ freeradius-server-3.2.3/src/include/threads.h	2024-02-27 04:03:53.806994686 +0100 +@@ -92,7 +92,7 @@ static _t __fr_thread_local_init_##_n(pt + #  define fr_thread_local_get(_n) _n + #elif defined(HAVE_PTHREAD_H) + #  include <pthread.h> +-#  define fr_thread_local_setup(_t, _n) \ ++#  define fr_thread_local_setup(_t, _n) static __thread _t _n;\ + static pthread_key_t __fr_thread_local_key_##_n;\ + static pthread_once_t __fr_thread_local_once_##_n = PTHREAD_ONCE_INIT;\ + static pthread_destructor_t __fr_thread_local_destructor_##_n = NULL;\ +@@ -103,17 +103,17 @@ static void __fr_thread_local_destroy_## + static void __fr_thread_local_key_init_##_n(void)\ + {\ + 	(void) pthread_key_create(&__fr_thread_local_key_##_n, __fr_thread_local_destroy_##_n);\ +-	(void) pthread_setspecific(__fr_thread_local_key_##_n, &(_n));\ + }\ + static _t __fr_thread_local_init_##_n(pthread_destructor_t func)\ + {\ + 	__fr_thread_local_destructor_##_n = func;\ + 	if (_n) return _n; \ + 	(void) pthread_once(&__fr_thread_local_once_##_n, __fr_thread_local_key_init_##_n);\ ++	(void) pthread_setspecific(__fr_thread_local_key_##_n, &(_n));\ + 	return _n;\ + } +-#  define fr_thread_local_init(_n, _f)			__fr_thread_local_init_##_n(_f) +-#  define fr_thread_local_set(_n, _v)			__fr_thread_local_set_##_n(_v) +-#  define fr_thread_local_get(_n)			__fr_thread_local_get_##_n() ++#  define fr_thread_local_init(_n, _f)	__fr_thread_local_init_##_n(_f) ++#  define fr_thread_local_set(_n, _v) ((int)!((_n = _v) || 1)) ++#  define fr_thread_local_get(_n) _n + #endif + #endif | 
