67 lines
2.7 KiB
Diff
67 lines
2.7 KiB
Diff
|
From dae3b7c53171dfeacce91e0da1c8bd4e4166352e Mon Sep 17 00:00:00 2001
|
||
|
From: Yi Zhao <yi.zhao@windriver.com>
|
||
|
Date: Wed, 18 Jan 2017 14:59:39 +0800
|
||
|
Subject: [PATCH] fix error for expansion of macro in thread.h
|
||
|
|
||
|
The parameter declaration is missing in expansion of macro
|
||
|
which cause the build error:
|
||
|
| In file included from src/freeradius-devel/libradius.h:80:0,
|
||
|
| from src/lib/log.c:26:
|
||
|
| src/lib/log.c: In function '__fr_thread_local_destroy_fr_strerror_buffer':
|
||
|
| src/lib/log.c:37:31: error: 'fr_strerror_buffer' undeclared (first use in this function)
|
||
|
| fr_thread_local_setup(char *, fr_strerror_buffer) /* macro */
|
||
|
| ^
|
||
|
|
||
|
Add the missing declaration in macro.
|
||
|
|
||
|
Upstream-Status: Pending
|
||
|
|
||
|
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
|
||
|
|
||
|
Fetch from: http://cgit.openembedded.org/meta-openembedded/tree/meta-networking/recipes-connectivity/freeradius/files
|
||
|
Signed-off-by: David Gouarin <david.gouarin@thalesgroup.com>
|
||
|
Signed-off-by: Matt Weber <matthew.weber@rockwellcollins.com>
|
||
|
Upstream: N/A, code has changed
|
||
|
---
|
||
|
src/include/threads.h | 10 +++++-----
|
||
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
||
|
|
||
|
diff --git a/src/include/threads.h b/src/include/threads.h
|
||
|
index e36d81dac0..2bcb6aadcb 100644
|
||
|
--- a/src/include/threads.h
|
||
|
+++ b/src/include/threads.h
|
||
|
@@ -89,7 +89,7 @@ static _t __fr_thread_local_init_##_n(pthread_destructor_t func)\
|
||
|
# 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;\
|
||
|
@@ -100,17 +100,17 @@ static void __fr_thread_local_destroy_##_n(UNUSED void *unused)\
|
||
|
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
|
||
|
--
|
||
|
2.17.1
|
||
|
|