From: Adhemerval Zanella Date: Fri, 31 Oct 2025 20:00:47 +0000 (-0300) Subject: x86: Fix THREAD_GSCOPE_RESET_FLAG build on clang X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e3394859eeee302edff09eb8ed0ec575aa8c5614;p=thirdparty%2Fglibc.git x86: Fix THREAD_GSCOPE_RESET_FLAG build on clang clang does not support __seg_fs in asm constraint. Reviewed-by: Uros Bizjak --- diff --git a/sysdeps/x86_64/nptl/tls.h b/sysdeps/x86_64/nptl/tls.h index abfeb88054..9d53f05e65 100644 --- a/sysdeps/x86_64/nptl/tls.h +++ b/sysdeps/x86_64/nptl/tls.h @@ -198,10 +198,18 @@ _Static_assert (offsetof (tcbhead_t, __glibc_unused2) == 0x80, # define THREAD_GSCOPE_FLAG_UNUSED 0 # define THREAD_GSCOPE_FLAG_USED 1 # define THREAD_GSCOPE_FLAG_WAIT 2 + +/* clang does not support __seg_fs in asm constraint. */ +# ifdef __clang__ +# define FS_ASM "%%fs:" +# else +# define FS_ASM +# endif + # define THREAD_GSCOPE_RESET_FLAG() \ do \ { int __res; \ - asm volatile ("xchgl %1, %0" \ + asm volatile ("xchgl " FS_ASM "%1, %0" \ : "=r" (__res) \ : "m" (((struct pthread __seg_fs *)0)->header.gscope_flag), \ "0" (THREAD_GSCOPE_FLAG_UNUSED)); \