From e68c51ac46a9f273927aef8dcebc89912ab19ece Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Sat, 12 May 2012 23:45:07 -0400 Subject: use __h_errno_location for h_errno we do not bother making h_errno thread-local since the only interfaces that use it are inherently non-thread-safe. but still use the potentially-thread-local ABI to access it just to avoid lock-in. --- include/netdb.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'include/netdb.h') diff --git a/include/netdb.h b/include/netdb.h index a480d82f..33b7a0ab 100644 --- a/include/netdb.h +++ b/include/netdb.h @@ -128,7 +128,11 @@ struct hostent *gethostbyaddr (const void *, socklen_t, int); int gethostbyaddr_r(const void *, socklen_t, int, struct hostent *, char *, size_t, struct hostent **, int *); int getservbyport_r(int, const char *, struct servent *, char *, size_t, struct servent **); int getservbyname_r(const char *, const char *, struct servent *, char *, size_t, struct servent **); -extern int h_errno; +#ifdef __GNUC__ +__attribute__((const)) +#endif +int *__h_errno_location(void); +#define h_errno (*__h_errno_location()) #define EAI_NODATA -5 #define EAI_ADDRFAMILY -9 #define EAI_INPROGRESS -100 -- cgit v1.2.1