提交 e13063aa 编写于 作者: R Rich Felker

add hidden version of &errno accessor function

this significantly improves codegen in functions that need to access
errno but otherwise have no need for a GOT pointer.

we could probably improve it much more by including an inline version
of the &errno accessor function, but that depends on having the
definitions of struct __pthread and __pthread_self(), which at present
would expose a lot more than is appropriate. moving them to a small
tls.h later might make this more reasonable.
上级 da55d488
...@@ -5,3 +5,5 @@ int *__errno_location(void) ...@@ -5,3 +5,5 @@ int *__errno_location(void)
{ {
return &__pthread_self()->errno_val; return &__pthread_self()->errno_val;
} }
weak_alias(__errno_location, ___errno_location);
#ifndef ERRNO_H
#define ERRNO_H
#include "../../include/errno.h"
hidden int *___errno_location(void);
#undef errno
#define errno (*___errno_location())
#endif
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册