aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/loongarch
diff options
context:
space:
mode:
authorcaiyinyu <caiyinyu@loongson.cn>2024-11-06 10:06:21 +0800
committercaiyinyu <caiyinyu@loongson.cn>2024-11-07 14:08:30 +0800
commit1b70a0a024f024328a12e31216d4d725f22e78b5 (patch)
tree50b82bb5b2c10504b809b248b6963636edae3597 /sysdeps/loongarch
parentba60be873554ecd141b55ea82647714933c0dbd4 (diff)
downloadglibc-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.h10
-rw-r--r--sysdeps/loongarch/nptl/tls.h2
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. */