auto import from //depot/cupcake/@135843
diff --git a/libc/private/resolv_static.h b/libc/private/resolv_static.h
new file mode 100644
index 0000000..8f2a095
--- /dev/null
+++ b/libc/private/resolv_static.h
@@ -0,0 +1,32 @@
+#ifndef _RESOLV_STATIC_H
+#define _RESOLV_STATIC_H
+
+#include <netdb.h>
+
+/* this structure contains all the variables that were declared
+ * 'static' in the original NetBSD resolver code.
+ *
+ * this caused vast amounts of crashes and memory corruptions
+ * when the resolver was being used by multiple threads.
+ *
+ * (note: the OpenBSD/FreeBSD resolver has similar 'issues')
+ */
+
+#define	MAXALIASES	35
+#define	MAXADDRS	35
+
+typedef struct res_static {
+    char*           h_addr_ptrs[MAXADDRS + 1];
+    char*           host_aliases[MAXALIASES];
+    char            hostbuf[8*1024];
+    u_int32_t       host_addr[16 / sizeof(u_int32_t)];  /* IPv4 or IPv6 */
+    FILE*           hostf;
+    int             stayopen;
+    const char*     servent_ptr;
+    struct servent  servent;
+    struct hostent  host;
+} *res_static;
+
+extern res_static __res_get_static(void);
+
+#endif /* _RESOLV_STATIC_H */