From: Maria Matejka Date: Wed, 22 Apr 2020 14:42:20 +0000 (+0200) Subject: Enforce support for thread local variables and POSIX threads X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5387208e1c569549e0bcf9e3eca69b0512ddb2d0;p=thirdparty%2Fbird.git Enforce support for thread local variables and POSIX threads --- diff --git a/configure.ac b/configure.ac index eabb3d562..7ef31fb44 100644 --- a/configure.ac +++ b/configure.ac @@ -36,12 +36,6 @@ AC_ARG_ENABLE([memcheck], [enable_memcheck=yes] ) -AC_ARG_ENABLE([pthreads], - [AS_HELP_STRING([--enable-pthreads], [enable POSIX threads support @<:@try@:>@])], - [], - [enable_pthreads=try] -) - AC_ARG_ENABLE([libssh], [AS_HELP_STRING([--enable-libssh], [enable LibSSH support in RPKI @<:@try@:>@])], [], @@ -125,25 +119,20 @@ if test -z "$GCC" ; then fi BIRD_CHECK_THREAD_LOCAL -if test "$bird_cv_thread_local" = yes ; then - AC_DEFINE([HAVE_THREAD_LOCAL], [1], [Define to 1 if _Thread_local is available]) +if test "$bird_cv_thread_local" = no ; then + AC_MSG_ERROR([Thread-local storage not available]) fi -if test "$enable_pthreads" != no ; then - BIRD_CHECK_PTHREADS +BIRD_CHECK_PTHREADS +if test "$bird_cv_lib_pthreads" = no ; then + AC_MSG_ERROR([POSIX threads not avalable]) +fi - if test "$bird_cv_lib_pthreads" = yes ; then - AC_DEFINE([USE_PTHREADS], [1], [Define to 1 if pthreads are enabled]) - CFLAGS="$CFLAGS -pthread" - LDFLAGS="$LDFLAGS -pthread" - proto_bfd=bfd - elif test "$enable_pthreads" = yes ; then - AC_MSG_ERROR([POSIX threads not available.]) - fi +CFLAGS="$CFLAGS -pthread" +LDFLAGS="$LDFLAGS -pthread" - if test "$enable_pthreads" = try ; then - enable_pthreads="$bird_cv_lib_pthreads" - fi +if test "$enable_pthreads" = try ; then + enable_pthreads="$bird_cv_lib_pthreads" fi # This is assumed to be necessary for proper BIRD build @@ -304,7 +293,7 @@ if test "$enable_mpls_kernel" != no ; then fi fi -all_protocols="$proto_bfd babel bgp mrt ospf perf pipe radv rip rpki static" +all_protocols="bfd babel bgp mrt ospf perf pipe radv rip rpki static" all_protocols=`echo $all_protocols | sed 's/ /,/g'` diff --git a/lib/birdlib.h b/lib/birdlib.h index 551d3e52a..e18107e90 100644 --- a/lib/birdlib.h +++ b/lib/birdlib.h @@ -75,10 +75,6 @@ static inline int u64_cmp(u64 i1, u64 i2) #define NONNULL(...) __attribute__((nonnull (__VA_ARGS__))) #define USE_RESULT __attribute__((warn_unused_result)) -#ifndef HAVE_THREAD_LOCAL -#define _Thread_local -#endif - /* Microsecond time */ typedef s64 btime; diff --git a/lib/timer.c b/lib/timer.c index a5abbcc46..34b442539 100644 --- a/lib/timer.c +++ b/lib/timer.c @@ -39,9 +39,6 @@ struct timeloop main_timeloop; - -#ifdef USE_PTHREADS - #include /* Data accessed and modified from proto/bfd/io.c */ @@ -62,14 +59,6 @@ timeloop_init_current(void) void wakeup_kick_current(void); -#else - -/* Just use main timelooop */ -static inline struct timeloop * timeloop_current(void) { return &main_timeloop; } -static inline void timeloop_init_current(void) { } - -#endif - btime current_time(void) { diff --git a/sysdep/unix/log.c b/sysdep/unix/log.c index e24322c60..80978802b 100644 --- a/sysdep/unix/log.c +++ b/sysdep/unix/log.c @@ -36,8 +36,6 @@ static list *current_log_list; static char *current_syslog_name; /* NULL -> syslog closed */ -#ifdef USE_PTHREADS - #include static pthread_mutex_t log_mutex; @@ -48,15 +46,6 @@ static pthread_t main_thread; void main_thread_init(void) { main_thread = pthread_self(); } static int main_thread_self(void) { return pthread_equal(pthread_self(), main_thread); } -#else - -static inline void log_lock(void) { } -static inline void log_unlock(void) { } -void main_thread_init(void) { } -static int main_thread_self(void) { return 1; } - -#endif - #ifdef HAVE_SYSLOG_H #include