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.
{
return &__pthread_self()->errno_val;
}
+
+weak_alias(__errno_location, ___errno_location);
--- /dev/null
+#ifndef ERRNO_H
+#define ERRNO_H
+
+#include "../../include/errno.h"
+
+hidden int *___errno_location(void);
+
+#undef errno
+#define errno (*___errno_location())
+
+#endif