mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2025-01-03 07:31:54 +00:00
Fix thread local storage support in GCC older than 4.9.
Let's hope this will be history soon.
This commit is contained in:
parent
5387208e1c
commit
2a0d6c32ac
11
aclocal.m4
vendored
11
aclocal.m4
vendored
@ -15,8 +15,17 @@ AC_DEFUN([BIRD_CHECK_THREAD_LOCAL],
|
|||||||
)
|
)
|
||||||
],
|
],
|
||||||
[bird_cv_thread_local=yes],
|
[bird_cv_thread_local=yes],
|
||||||
|
AC_COMPILE_IFELSE([
|
||||||
|
AC_LANG_PROGRAM(
|
||||||
|
[
|
||||||
|
static __thread int x = 42;
|
||||||
|
],
|
||||||
|
[]
|
||||||
|
)
|
||||||
|
],
|
||||||
|
[bird_cv_thread_local=__thread],
|
||||||
[bird_cv_thread_local=no]
|
[bird_cv_thread_local=no]
|
||||||
)
|
))
|
||||||
)
|
)
|
||||||
])
|
])
|
||||||
|
|
||||||
|
@ -120,7 +120,9 @@ fi
|
|||||||
|
|
||||||
BIRD_CHECK_THREAD_LOCAL
|
BIRD_CHECK_THREAD_LOCAL
|
||||||
if test "$bird_cv_thread_local" = no ; then
|
if test "$bird_cv_thread_local" = no ; then
|
||||||
AC_MSG_ERROR([Thread-local storage not available])
|
AC_MSG_ERROR([Thread-local storage not available])
|
||||||
|
elif test "$bird_cv_thread_local" != yes ; then
|
||||||
|
CFLAGS="$CFLAGS -D_Thread_local=$bird_cv_thread_local"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
BIRD_CHECK_PTHREADS
|
BIRD_CHECK_PTHREADS
|
||||||
|
@ -91,8 +91,8 @@ struct filter_state {
|
|||||||
struct buffer buf;
|
struct buffer buf;
|
||||||
};
|
};
|
||||||
|
|
||||||
_Thread_local static struct filter_state filter_state;
|
static _Thread_local struct filter_state filter_state;
|
||||||
_Thread_local static struct filter_stack filter_stack;
|
static _Thread_local struct filter_stack filter_stack;
|
||||||
|
|
||||||
void (*bt_assert_hook)(int result, const struct f_line_item *assert);
|
void (*bt_assert_hook)(int result, const struct f_line_item *assert);
|
||||||
|
|
||||||
|
@ -2248,7 +2248,7 @@ bgp_rte_modify_stale(struct rte_storage *r, struct linpool *pool)
|
|||||||
if (ad && int_set_contains(ad, BGP_COMM_LLGR_STALE))
|
if (ad && int_set_contains(ad, BGP_COMM_LLGR_STALE))
|
||||||
return r->attrs;
|
return r->attrs;
|
||||||
|
|
||||||
_Thread_local static struct {
|
static _Thread_local struct {
|
||||||
rta a;
|
rta a;
|
||||||
u32 labels[MPLS_MAX_LABEL_STACK];
|
u32 labels[MPLS_MAX_LABEL_STACK];
|
||||||
} aloc;
|
} aloc;
|
||||||
|
Loading…
Reference in New Issue
Block a user