Andrew Geissler | c5535c9 | 2023-01-27 16:10:19 -0600 | [diff] [blame^] | 1 | From 30ce5ccd62446349d432ff65d3fe8d46872423c8 Mon Sep 17 00:00:00 2001 |
Brad Bishop | d7bf8c1 | 2018-02-25 22:55:05 -0500 | [diff] [blame] | 2 | From: Yi Zhao <yi.zhao@windriver.com> |
| 3 | Date: Wed, 18 Jan 2017 14:59:39 +0800 |
| 4 | Subject: [PATCH] fix error for expansion of macro in thread.h |
| 5 | |
| 6 | The parameter declaration is missing in expansion of macro |
| 7 | which cause the build error: |
| 8 | | In file included from src/freeradius-devel/libradius.h:80:0, |
| 9 | | from src/lib/log.c:26: |
| 10 | | src/lib/log.c: In function '__fr_thread_local_destroy_fr_strerror_buffer': |
| 11 | | src/lib/log.c:37:31: error: 'fr_strerror_buffer' undeclared (first use in this function) |
| 12 | | fr_thread_local_setup(char *, fr_strerror_buffer) /* macro */ |
| 13 | | ^ |
| 14 | |
| 15 | Add the missing declaration in macro. |
| 16 | |
| 17 | Upstream-Status: Pending |
| 18 | |
| 19 | Signed-off-by: Yi Zhao <yi.zhao@windriver.com> |
| 20 | --- |
| 21 | src/include/threads.h | 10 +++++----- |
| 22 | 1 file changed, 5 insertions(+), 5 deletions(-) |
| 23 | |
| 24 | diff --git a/src/include/threads.h b/src/include/threads.h |
Andrew Geissler | c5535c9 | 2023-01-27 16:10:19 -0600 | [diff] [blame^] | 25 | index e36d81dac0..2bcb6aadcb 100644 |
Brad Bishop | d7bf8c1 | 2018-02-25 22:55:05 -0500 | [diff] [blame] | 26 | --- a/src/include/threads.h |
| 27 | +++ b/src/include/threads.h |
| 28 | @@ -89,7 +89,7 @@ static _t __fr_thread_local_init_##_n(pthread_destructor_t func)\ |
| 29 | # define fr_thread_local_get(_n) _n |
| 30 | #elif defined(HAVE_PTHREAD_H) |
| 31 | # include <pthread.h> |
| 32 | -# define fr_thread_local_setup(_t, _n) \ |
| 33 | +# define fr_thread_local_setup(_t, _n) static __thread _t _n;\ |
| 34 | static pthread_key_t __fr_thread_local_key_##_n;\ |
| 35 | static pthread_once_t __fr_thread_local_once_##_n = PTHREAD_ONCE_INIT;\ |
| 36 | static pthread_destructor_t __fr_thread_local_destructor_##_n = NULL;\ |
| 37 | @@ -100,17 +100,17 @@ static void __fr_thread_local_destroy_##_n(UNUSED void *unused)\ |
| 38 | static void __fr_thread_local_key_init_##_n(void)\ |
| 39 | {\ |
| 40 | (void) pthread_key_create(&__fr_thread_local_key_##_n, __fr_thread_local_destroy_##_n);\ |
| 41 | - (void) pthread_setspecific(__fr_thread_local_key_##_n, &(_n));\ |
| 42 | }\ |
| 43 | static _t __fr_thread_local_init_##_n(pthread_destructor_t func)\ |
| 44 | {\ |
| 45 | __fr_thread_local_destructor_##_n = func;\ |
| 46 | if (_n) return _n; \ |
| 47 | (void) pthread_once(&__fr_thread_local_once_##_n, __fr_thread_local_key_init_##_n);\ |
| 48 | + (void) pthread_setspecific(__fr_thread_local_key_##_n, &(_n));\ |
| 49 | return _n;\ |
| 50 | } |
| 51 | -# define fr_thread_local_init(_n, _f) __fr_thread_local_init_##_n(_f) |
| 52 | -# define fr_thread_local_set(_n, _v) __fr_thread_local_set_##_n(_v) |
| 53 | -# define fr_thread_local_get(_n) __fr_thread_local_get_##_n() |
| 54 | +# define fr_thread_local_init(_n, _f) __fr_thread_local_init_##_n(_f) |
| 55 | +# define fr_thread_local_set(_n, _v) ((int)!((_n = _v) || 1)) |
| 56 | +# define fr_thread_local_get(_n) _n |
| 57 | #endif |
| 58 | #endif |
| 59 | -- |
Andrew Geissler | c5535c9 | 2023-01-27 16:10:19 -0600 | [diff] [blame^] | 60 | 2.25.1 |
Brad Bishop | d7bf8c1 | 2018-02-25 22:55:05 -0500 | [diff] [blame] | 61 | |