diff options
Diffstat (limited to 'meta-networking/recipes-connectivity/freeradius/files/0010-fix-error-for-expansion-of-macro-in-thread.h.patch')
| -rw-r--r-- | meta-networking/recipes-connectivity/freeradius/files/0010-fix-error-for-expansion-of-macro-in-thread.h.patch | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0010-fix-error-for-expansion-of-macro-in-thread.h.patch b/meta-networking/recipes-connectivity/freeradius/files/0010-fix-error-for-expansion-of-macro-in-thread.h.patch new file mode 100644 index 0000000000..051b66af8f --- /dev/null +++ b/meta-networking/recipes-connectivity/freeradius/files/0010-fix-error-for-expansion-of-macro-in-thread.h.patch | |||
| @@ -0,0 +1,61 @@ | |||
| 1 | From 30ce5ccd62446349d432ff65d3fe8d46872423c8 Mon Sep 17 00:00:00 2001 | ||
| 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 | ||
| 25 | index e36d81dac0..2bcb6aadcb 100644 | ||
| 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 | -- | ||
| 60 | 2.25.1 | ||
| 61 | |||
