nptl: fix __builtin_thread_pointer detection on LoongArch

Signed-off-by: caiyinyu <caiyinyu@loongson.cn>
This commit is contained in:
caiyinyu 2024-11-06 10:06:21 +08:00
parent ba60be8735
commit 1b70a0a024
2 changed files with 3 additions and 9 deletions

View File

@ -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 */

View File

@ -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. */