From d79f92afcf34ccc93b721da963d9724ddbb83305 Mon Sep 17 00:00:00 2001
From: Yuchen Zeng <zyc@google.com>
Date: Mon, 8 Aug 2016 01:18:32 -0700
Subject: [PATCH] Fix multi-core build issue

---
 Makefile                                            |  5 +++--
 src/core/ext/resolver/dns/c_ares/dns_resolver.c     |  1 -
 .../ext/resolver/dns/c_ares/grpc_ares_wrapper.c     | 13 ++++++++-----
 templates/Makefile.template                         |  5 +++--
 4 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/Makefile b/Makefile
index ea5f78161d..f036c173fa 100644
--- a/Makefile
+++ b/Makefile
@@ -1241,16 +1241,17 @@ $(LIBDIR)/$(CONFIG)/protobuf/libprotobuf.a: third_party/protobuf/configure
 
 third_party/c-ares/configure:
 	$(E) "[AUTOGEN] Preparing c-ares"
-	$(Q)(cd third_party/c-ares; ./buildconf; ./configure)
+	$(Q)(cd third_party/c-ares; ./buildconf; CC="$(CC)" CXX="$(CXX)" LDFLAGS="$(LDFLAGS_$(CONFIG)) -g $(CARES_LDFLAGS_EXTRA)" CPPFLAGS="$(PIC_CPPFLAGS) $(CPPFLAGS_$(CONFIG)) -g $(CARES_CPPFLAGS_EXTRA)" ./configure)
 
 $(LIBDIR)/$(CONFIG)/c-ares/libcares.a: third_party/c-ares/configure
 	$(E) "[MAKE]    Building c-ares"
-	$(Q)(cd third_party/c-ares ; CC="$(CC)" CXX="$(CXX)" LDFLAGS="$(LDFLAGS_$(CONFIG)) -g $(CARES_LDFLAGS_EXTRA)" CPPFLAGS="$(PIC_CPPFLAGS) $(CPPFLAGS_$(CONFIG)) -g $(CARES_CPPFLAGS_EXTRA)" ./configure --disable-shared --enable-static)
 	$(Q)$(MAKE) -C third_party/c-ares clean
 	$(Q)$(MAKE) -C third_party/c-ares
 	$(Q)mkdir -p $(LIBDIR)/$(CONFIG)/c-ares
 	$(Q)cp third_party/c-ares/.libs/libcares.a $(LIBDIR)/$(CONFIG)/c-ares
 
+$(OBJDIR)/$(CONFIG)/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.o: third_party/c-ares/configure
+
 static: static_c static_cxx
 
 static_c: pc_c pc_c_unsecure cache.mk  $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgrpc_cronet.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a
diff --git a/src/core/ext/resolver/dns/c_ares/dns_resolver.c b/src/core/ext/resolver/dns/c_ares/dns_resolver.c
index da328bf4f0..29caac1d20 100644
--- a/src/core/ext/resolver/dns/c_ares/dns_resolver.c
+++ b/src/core/ext/resolver/dns/c_ares/dns_resolver.c
@@ -38,7 +38,6 @@
 #include <grpc/support/host_port.h>
 #include <grpc/support/string_util.h>
 
-#include <ares.h>
 #include "src/core/ext/client_config/lb_policy_registry.h"
 #include "src/core/ext/client_config/resolver_registry.h"
 #include "src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.h"
diff --git a/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c b/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c
index 7d0b573045..d64f01fbf9 100644
--- a/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c
+++ b/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c
@@ -32,12 +32,19 @@
  */
 
 #include <grpc/support/port_platform.h>
-#ifdef GPR_POSIX_SOCKET
 
 #include "src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.h"
 #include "src/core/lib/iomgr/ev_posix.h"
 #include "src/core/lib/iomgr/sockaddr.h"
 
+#ifdef GPR_POSIX_SOCKET
+#include <arpa/inet.h>
+#endif
+
+#ifdef GPR_WINSOCK_SOCKET
+#include <winsock2.h>
+#endif
+
 #include <string.h>
 #include <sys/types.h>
 
@@ -56,8 +63,6 @@
 #include "src/core/lib/support/block_annotate.h"
 #include "src/core/lib/support/string.h"
 
-#include <arpa/inet.h>
-
 typedef struct fd_pair {
   grpc_fd *grpc_fd;
   int fd;
@@ -386,5 +391,3 @@ void grpc_ares_init(void) {
     gpr_log(GPR_ERROR, "ares_library_init failed");
   }
 }
-
-#endif
diff --git a/templates/Makefile.template b/templates/Makefile.template
index d72daee914..27b6df6710 100644
--- a/templates/Makefile.template
+++ b/templates/Makefile.template
@@ -884,16 +884,17 @@
 
   third_party/c-ares/configure:
   	$(E) "[AUTOGEN] Preparing c-ares"
-  	$(Q)(cd third_party/c-ares; ./buildconf; ./configure)
+  	$(Q)(cd third_party/c-ares; ./buildconf; CC="$(CC)" CXX="$(CXX)" LDFLAGS="$(LDFLAGS_$(CONFIG)) -g $(CARES_LDFLAGS_EXTRA)" CPPFLAGS="$(PIC_CPPFLAGS) $(CPPFLAGS_$(CONFIG)) -g $(CARES_CPPFLAGS_EXTRA)" ./configure)
 
   $(LIBDIR)/$(CONFIG)/c-ares/libcares.a: third_party/c-ares/configure
   	$(E) "[MAKE]    Building c-ares"
-  	$(Q)(cd third_party/c-ares ; CC="$(CC)" CXX="$(CXX)" LDFLAGS="$(LDFLAGS_$(CONFIG)) -g $(CARES_LDFLAGS_EXTRA)" CPPFLAGS="$(PIC_CPPFLAGS) $(CPPFLAGS_$(CONFIG)) -g $(CARES_CPPFLAGS_EXTRA)" ./configure --disable-shared --enable-static)
   	$(Q)$(MAKE) -C third_party/c-ares clean
   	$(Q)$(MAKE) -C third_party/c-ares
   	$(Q)mkdir -p $(LIBDIR)/$(CONFIG)/c-ares
   	$(Q)cp third_party/c-ares/.libs/libcares.a $(LIBDIR)/$(CONFIG)/c-ares
 
+  $(OBJDIR)/$(CONFIG)/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.o: third_party/c-ares/configure
+
   static: static_c static_cxx
 
   static_c: pc_c pc_c_unsecure cache.mk \
-- 
GitLab