]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
compiler: fix thread_local detection 3749/head
authorChristian Brauner <christian.brauner@ubuntu.com>
Mon, 29 Mar 2021 13:42:54 +0000 (15:42 +0200)
committerChristian Brauner <christian.brauner@ubuntu.com>
Mon, 29 Mar 2021 14:03:57 +0000 (16:03 +0200)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
configure.ac
src/lxc/compiler.h
src/lxc/conf.c
src/lxc/conf.h
src/lxc/initutils.c

index 76f2e1026891b89df15842b95d2876f90f6d7536..b329b4ea772a4a8eaefbfec4fc327e88fbba03e6 100644 (file)
@@ -629,7 +629,7 @@ AC_CHECK_DECLS([PR_SET_NO_NEW_PRIVS], [], [], [#include <sys/prctl.h>])
 AC_CHECK_DECLS([PR_GET_NO_NEW_PRIVS], [], [], [#include <sys/prctl.h>])
 
 # Check for some headers
-AC_CHECK_HEADERS([pty.h sys/memfd.h sys/personality.h sys/resource.h sys/signalfd.h sys/timerfd.h utmpx.h threads.h])
+AC_CHECK_HEADERS([pty.h sys/memfd.h sys/personality.h sys/resource.h sys/signalfd.h sys/timerfd.h utmpx.h])
 
 AC_CHECK_HEADER([ifaddrs.h],
        AM_CONDITIONAL(HAVE_IFADDRS_H, true)
index 353677a5e87c0eb6b81a6a8f17fc91642ba9b6e7..5d45955d0afa4ab6d1498e494351530edc5d81d1 100644 (file)
 
 #include "config.h"
 
-#if defined(HAVE_THREADS_H)
-       #include <threads.h>
-       #define THREAD_LOCAL_STORAGE_SUPPORTED
-#elif defined(thread_local)
-       #define THREAD_LOCAL_STORAGE_SUPPORTED
+#ifndef thread_local
+#if __STDC_VERSION__ >= 201112L &&    \
+    !(defined(__STDC_NO_THREADS__) || \
+      (defined(__GNU_LIBRARY__) && __GLIBC__ == 2 && __GLIBC_MINOR__ < 16))
+#define thread_local _Thread_local
 #else
-       #if __STDC_VERSION__ >= 201112L &&    \
-           !(defined(__STDC_NO_THREADS__) || \
-             (defined(__GNU_LIBRARY__) && __GLIBC__ == 2 && __GLIBC_MINOR__ < 16))
-               #define thread_local _Thread_local
-
-               #define THREAD_LOCAL_STORAGE_SUPPORTED
-       #else
-               #define thread_local __thread
-
-               #define THREAD_LOCAL_STORAGE_SUPPORTED
-       #endif
+#define thread_local __thread
+#endif
 #endif
 
 #if __GNUC__ >= 7
index bceb2cebc45975d0553bfa54d8978d4746899d63..37bf28d342cba332a33d718f488e505435058fc2 100644 (file)
@@ -104,13 +104,7 @@ lxc_log_define(conf, lxc);
  * The lxc_conf of the container currently being worked on in an API call.
  * This is used in the error calls.
  */
-#if defined(THREAD_LOCAL_STORAGE_SUPPORTED)
 thread_local struct lxc_conf *current_config;
-#elif defined(ENFORCE_THREAD_SAFETY)
-#error ENFORCE_THREAD_SAFETY was set but cannot be guaranteed due to missing TLS
-#else
-struct lxc_conf *current_config;
-#endif
 
 char *lxchook_names[NUM_LXC_HOOKS] = {
        "pre-start",
index 939e47d75cc9b75ade7a7961aa97a4a66f54aaa2..2824c8719ba52a59441a0f27f241248db5b996a0 100644 (file)
@@ -474,13 +474,7 @@ struct lxc_conf {
 __hidden extern int write_id_mapping(enum idtype idtype, pid_t pid, const char *buf, size_t buf_size)
     __access_r(3, 4);
 
-#if defined(THREAD_LOCAL_STORAGE_SUPPORTED)
 extern thread_local struct lxc_conf *current_config;
-#elif defined(ENFORCE_THREAD_SAFETY)
-#error ENFORCE_THREAD_SAFETY was set but cannot be guaranteed due to missing TLS
-#else
-struct lxc_conf *current_config;
-#endif
 
 __hidden extern int run_lxc_hooks(const char *name, char *hook, struct lxc_conf *conf, char *argv[]);
 __hidden extern struct lxc_conf *lxc_conf_init(void);
index c6206bff54809dafb93903ec4c4944df5fe8ba76..969d2052f70d937ee3c4db87c9186e9b14a778da 100644 (file)
@@ -54,13 +54,7 @@ const char *lxc_global_config_value(const char *option_name)
        };
 
        /* placed in the thread local storage pool for non-bionic targets */
-#if defined(THREAD_LOCAL_STORAGE_SUPPORTED)
        static thread_local const char *values[sizeof(options) / sizeof(options[0])] = {0};
-#elif defined(ENFORCE_THREAD_SAFETY)
-       #error ENFORCE_THREAD_SAFETY was set but cannot be guaranteed due to missing TLS
-#else
-       static const char *values[sizeof(options) / sizeof(options[0])] = {0};
-#endif
 
        /* user_config_path is freed as soon as it is used */
        char *user_config_path = NULL;