diff options
author | caiyinyu <caiyinyu@loongson.cn> | 2024-11-06 10:06:21 +0800 |
---|---|---|
committer | caiyinyu <caiyinyu@loongson.cn> | 2024-11-07 14:08:30 +0800 |
commit | 1b70a0a024f024328a12e31216d4d725f22e78b5 (patch) | |
tree | 50b82bb5b2c10504b809b248b6963636edae3597 /sysdeps/loongarch | |
parent | ba60be873554ecd141b55ea82647714933c0dbd4 (diff) | |
download | glibc-1b70a0a024f024328a12e31216d4d725f22e78b5.zip glibc-1b70a0a024f024328a12e31216d4d725f22e78b5.tar.gz glibc-1b70a0a024f024328a12e31216d4d725f22e78b5.tar.bz2 |
nptl: fix __builtin_thread_pointer detection on LoongArch
Signed-off-by: caiyinyu <caiyinyu@loongson.cn>
Diffstat (limited to 'sysdeps/loongarch')
-rw-r--r-- | sysdeps/loongarch/nptl/thread_pointer.h | 10 | ||||
-rw-r--r-- | sysdeps/loongarch/nptl/tls.h | 2 |
2 files changed, 3 insertions, 9 deletions
diff --git a/sysdeps/loongarch/nptl/thread_pointer.h b/sysdeps/loongarch/nptl/thread_pointer.h index 5dec2ef..cc96062 100644 --- a/sysdeps/loongarch/nptl/thread_pointer.h +++ b/sysdeps/loongarch/nptl/thread_pointer.h @@ -19,18 +19,12 @@ #ifndef _SYS_THREAD_POINTER_H #define _SYS_THREAD_POINTER_H -#include <sys/cdefs.h> +register void *__thread_self asm ("$tp"); static inline void * __thread_pointer (void) { -#if __glibc_has_builtin (__builtin_thread_pointer) - return __builtin_thread_pointer (); -#else - void *__thread_register; - __asm__ ("move %0, $tp" : "=r" (__thread_register)); - return __thread_register; -#endif + return __thread_self; } #endif /* _SYS_THREAD_POINTER_H */ diff --git a/sysdeps/loongarch/nptl/tls.h b/sysdeps/loongarch/nptl/tls.h index ac1a92e..675c0d2 100644 --- a/sysdeps/loongarch/nptl/tls.h +++ b/sysdeps/loongarch/nptl/tls.h @@ -26,8 +26,8 @@ #include <stddef.h> #include <stdint.h> #include <dl-dtv.h> +#include "thread_pointer.h" -register void *__thread_self asm ("$tp"); #define READ_THREAD_POINTER() ({ __thread_self; }) /* Get system call information. */ |