From: Peter Maydell <>

Back when we used to support compiling either with or without
NPTL threading library support, we used a macro THREAD which would
expand either to nothing (no thread support) or to __thread (threads
supported). For a long time now we have required thread support,
so remove the macro and just use __thread directly as other parts
of QEMU do.

Signed-off-by: Peter Maydell <>
Reviewed-by: Laurent Vivier <>
Reviewed-by: Richard Henderson <>
Message-Id: <>
Signed-off-by: Laurent Vivier <>
 linux-user/main.c | 2 +-
 linux-user/qemu.h | 4 +---
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/linux-user/main.c b/linux-user/main.c
index 7de0e02487..fd7900628b 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -3835,7 +3835,7 @@ void cpu_loop(CPUHPPAState *env)
 #endif /* TARGET_HPPA */
-THREAD CPUState *thread_cpu;
+__thread CPUState *thread_cpu;
 bool qemu_cpu_is_self(CPUState *cpu)
diff --git a/linux-user/qemu.h b/linux-user/qemu.h
index 4edd7d0c08..bc4bf35036 100644
--- a/linux-user/qemu.h
+++ b/linux-user/qemu.h
@@ -18,8 +18,6 @@
 #include "exec/gdbstub.h"
 #include "qemu/queue.h"
-#define THREAD __thread
 /* This is the size of the host kernel's sigset_t, needed where we make
  * direct system calls that take a sigset_t pointer and a size.
@@ -201,7 +199,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
                     abi_long arg5, abi_long arg6, abi_long arg7,
                     abi_long arg8);
 void gemu_log(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
-extern THREAD CPUState *thread_cpu;
+extern __thread CPUState *thread_cpu;
 void cpu_loop(CPUArchState *env);
 const char *target_strerror(int err);
 int get_osversion(void);

Reply via email to