提交 4aaf879e 编写于 作者: R Rich Felker

eliminate use of SHARED macro in __tls_get_addr

this was only a tiny optimization, and static-linked binaries should
not be calling __tls_get_addr anyway since the linker is supposed to
perform relaxation, resulting in use of the local-exec TLS model.
上级 8a8fdf63
#include <stddef.h>
#include "pthread_impl.h"
#include "libc.h"
__attribute__((__visibility__("hidden")))
void *__tls_get_new(size_t *);
void *__tls_get_addr(size_t *v)
{
pthread_t self = __pthread_self();
#ifdef SHARED
__attribute__((__visibility__("hidden")))
void *__tls_get_new(size_t *);
if (v[0]<=(size_t)self->dtv[0])
return (char *)self->dtv[v[0]]+v[1]+DTP_OFFSET;
return __tls_get_new(v);
#else
return (char *)self->dtv[1]+v[1]+DTP_OFFSET;
#endif
}
weak_alias(__tls_get_addr, __tls_get_new);
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册