diff --git a/libc/bionic/NetdClient.cpp b/libc/bionic/NetdClient.cpp
index 72d90b7..75e84ee 100644
--- a/libc/bionic/NetdClient.cpp
+++ b/libc/bionic/NetdClient.cpp
@@ -18,11 +18,11 @@
 #error NetdClient.cpp should NOT be included in static libc builds.
 #endif
 
-#include <private/NetdClient.h>
-#include <private/libc_logging.h>
-#include <pthread.h>
+#include "private/libc_logging.h"
+#include "private/NetdClientDispatch.h"
 
 #include <dlfcn.h>
+#include <pthread.h>
 
 template <typename FunctionType>
 static void netdClientInitFunction(void* handle, const char* symbol, FunctionType* function) {
diff --git a/libc/bionic/NetdClientDispatch.cpp b/libc/bionic/NetdClientDispatch.cpp
index adfe16d..6bd2357 100644
--- a/libc/bionic/NetdClientDispatch.cpp
+++ b/libc/bionic/NetdClientDispatch.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include <private/NetdClient.h>
+#include "private/NetdClientDispatch.h"
 
 #ifdef __i386__
 #define __socketcall __attribute__((__cdecl__))
@@ -25,7 +25,9 @@
 extern "C" __socketcall int __accept(int, sockaddr*, socklen_t*);
 extern "C" __socketcall int __connect(int, const sockaddr*, socklen_t);
 
-NetdClientDispatch __netdClientDispatch __attribute__((aligned(32))) = {
+// This structure is modified only at startup (when libc.so is loaded) and never
+// afterwards, so it's okay that it's read later at runtime without a lock.
+__LIBC_HIDDEN__ NetdClientDispatch __netdClientDispatch __attribute__((aligned(32))) = {
     __accept,
     __connect,
 };
diff --git a/libc/bionic/accept.cpp b/libc/bionic/accept.cpp
index 46b4efc..8073234 100644
--- a/libc/bionic/accept.cpp
+++ b/libc/bionic/accept.cpp
@@ -14,7 +14,8 @@
  * limitations under the License.
  */
 
-#include <private/NetdClient.h>
+#include "private/NetdClientDispatch.h"
+
 #include <sys/socket.h>
 
 int accept(int sockfd, sockaddr* addr, socklen_t* addrlen) {
diff --git a/libc/bionic/connect.cpp b/libc/bionic/connect.cpp
index c5db46b..1673f4a 100644
--- a/libc/bionic/connect.cpp
+++ b/libc/bionic/connect.cpp
@@ -14,7 +14,8 @@
  * limitations under the License.
  */
 
-#include <private/NetdClient.h>
+#include "private/NetdClientDispatch.h"
+
 #include <sys/socket.h>
 
 int connect(int sockfd, const sockaddr* addr, socklen_t addrlen) {
diff --git a/libc/private/NetdClient.h b/libc/private/NetdClientDispatch.h
similarity index 65%
rename from libc/private/NetdClient.h
rename to libc/private/NetdClientDispatch.h
index b2ce7a6..0390bfb 100644
--- a/libc/private/NetdClient.h
+++ b/libc/private/NetdClientDispatch.h
@@ -14,16 +14,21 @@
  * limitations under the License.
  */
 
-#ifndef PRIVATE_NETD_CLIENT_H
-#define PRIVATE_NETD_CLIENT_H
+#ifndef PRIVATE_NETD_CLIENT_DISPATCH_H
+#define PRIVATE_NETD_CLIENT_DISPATCH_H
 
+#include <sys/cdefs.h>
 #include <sys/socket.h>
 
+__BEGIN_DECLS
+
 struct NetdClientDispatch {
-    int (*accept)(int, sockaddr*, socklen_t*);
-    int (*connect)(int, const sockaddr*, socklen_t);
+    int (*accept)(int, struct sockaddr*, socklen_t*);
+    int (*connect)(int, const struct sockaddr*, socklen_t);
 };
 
-extern NetdClientDispatch __netdClientDispatch;
+extern __LIBC_HIDDEN__ struct NetdClientDispatch __netdClientDispatch;
 
-#endif  // PRIVATE_NETD_CLIENT_H
+__END_DECLS
+
+#endif  // PRIVATE_NETD_CLIENT_DISPATCH_H
