/* Macros for accessing h_errno from inside libc. */
# ifdef _LIBC_REENTRANT
# include <tls.h>
-# if USE_TLS && HAVE___THREAD
+# if USE___THREAD
# undef h_errno
-# define h_errno h_errno /* For #ifndef h_errno tests. */
-extern __thread int h_errno;
+# ifndef NOT_IN_libc
+# define h_errno __libc_h_errno
+# else
+# define h_errno h_errno /* For #ifndef h_errno tests. */
+# endif
+extern __thread int h_errno attribute_tls_model_ie;
# define __set_h_errno(x) (h_errno = (x))
# else
static inline int
# else
# undef h_errno
# define __set_h_errno(x) (h_errno = (x))
+extern int h_errno;
# endif /* _LIBC_REENTRANT */
libc_hidden_proto (hstrerror)
libc_hidden_proto (getnameinfo)
libc_hidden_proto (freeaddrinfo)
libc_hidden_proto (gai_strerror)
+libc_hidden_proto (__h_errno_location)
/* Document internal interfaces. */
extern int __gethostent_r (struct hostent *__restrict __result_buf,
libc_hidden_proto (ruserpass)
-/* The following declarations and definitions have been removed from
- the public header since we don't want people to use them. */
+/* The following definition has been removed from the public header
+ since we don't want people to use them. */
-#define AI_V4MAPPED 0x0008 /* IPv4-mapped addresses are acceptable. */
-#define AI_ALL 0x0010 /* Return both IPv4 and IPv6 addresses. */
-#define AI_ADDRCONFIG 0x0020 /* Use configuration of this host to choose
- returned address type. */
-#define AI_DEFAULT (AI_V4MAPPED | AI_ADDRCONFIG)
+#define AI_DEFAULT (AI_V4MAPPED | AI_ADDRCONFIG | AI_IDN)
#include <inet/netgroup.h>