diff --git a/Makefile b/Makefile
index 58b39775826111fdf9b33c8ec382f998d136a64d..21580188b69b49a5795784bb00afe1ab6d3f423b 100644
--- a/Makefile
+++ b/Makefile
@@ -6613,7 +6613,7 @@ PUBLIC_HEADERS_C += \
 
 LIBARES_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBARES_SRC))))
 
-$(LIBARES_OBJS): CPPFLAGS += -Ithird_party/c-ares -Isrc/c-ares $(if $(subst Linux,,$(SYSTEM)),,-Isrc/c-ares/config_linux) -fvisibility=hidden -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DHAVE_CONFIG_H
+$(LIBARES_OBJS): CPPFLAGS += -Ithird_party/c-ares -Isrc/c-ares $(if $(subst Linux,,$(SYSTEM)),,-Isrc/c-ares/config_linux) $(if $(subst Darwin,,$(SYSTEM)),,-Isrc/c-ares/config_darwin) -fvisibility=hidden -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DHAVE_CONFIG_H
 $(LIBARES_OBJS): CFLAGS += -Wno-sign-conversion -Wno-invalid-source-encoding
 
 $(LIBDIR)/$(CONFIG)/libares.a: $(ZLIB_DEP) third_party/c-ares/configure  $(LIBARES_OBJS)  $(CARES_DEP)
diff --git a/build.yaml b/build.yaml
index d63628740305ad345cf98347a87886deda200e25..e97087f04639d34af7fcc14eb8ad8a381b22864d 100644
--- a/build.yaml
+++ b/build.yaml
@@ -3377,8 +3377,8 @@ defaults:
   ares:
     CFLAGS: -Wno-sign-conversion -Wno-invalid-source-encoding
     CPPFLAGS: -Ithird_party/c-ares -Isrc/c-ares $(if $(subst Linux,,$(SYSTEM)),,-Isrc/c-ares/config_linux)
-      -fvisibility=hidden -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0
-      -DNOMINMAX -DHAVE_CONFIG_H
+      $(if $(subst Darwin,,$(SYSTEM)),,-Isrc/c-ares/config_darwin) -fvisibility=hidden
+      -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DHAVE_CONFIG_H
   boringssl:
     CFLAGS: -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas
       -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
diff --git a/src/c-ares/config_darwin/ares_config.h b/src/c-ares/config_darwin/ares_config.h
index 920d922c81c15545aa55aa2385ea5ba0c6e76d7b..0f5bd4b6a537845ed7136859a803f24fe4dc5102 100644
--- a/src/c-ares/config_darwin/ares_config.h
+++ b/src/c-ares/config_darwin/ares_config.h
@@ -10,21 +10,24 @@
 /* when building as static part of libcurl */
 /* #undef BUILDING_LIBCURL */
 
-/* when building c-ares library */
-/* #undef CARES_BUILDING_LIBRARY */
+/* Defined for build that exposes internal static functions for testing. */
+/* #undef CARES_EXPOSE_STATICS */
 
-/* when not building a shared library */
-/* #undef CARES_STATICLIB */
-
-/* Define to 1 to enable hiding of library internal symbols. */
+/* Defined for build with symbol hiding. */
 #define CARES_SYMBOL_HIDING 1
 
 /* Definition to make a library symbol externally visible. */
-#define CARES_SYMBOL_SCOPE_EXTERN __attribute__ ((visibility ("default")))
+#define CARES_SYMBOL_SCOPE_EXTERN __attribute__ ((__visibility__ ("default")))
+
+/* Use resolver library to configure cares */
+/* #undef CARES_USE_LIBRESOLV */
 
 /* if a /etc/inet dir is being used */
 /* #undef ETC_INET */
 
+/* Define to the type of arg 2 for gethostname. */
+#define GETHOSTNAME_TYPE_ARG2 size_t
+
 /* Define to the type qualifier of arg 1 for getnameinfo. */
 #define GETNAMEINFO_QUAL_ARG1 const
 
@@ -79,6 +82,9 @@
 /* Define to 1 if you have the connect function. */
 #define HAVE_CONNECT 1
 
+/* define if the compiler supports basic C++11 syntax */
+#define HAVE_CXX11 1
+
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #define HAVE_DLFCN_H 1
 
@@ -103,6 +109,9 @@
 /* Define to 1 if the getaddrinfo function is threadsafe. */
 #define HAVE_GETADDRINFO_THREADSAFE 1
 
+/* Define to 1 if you have the getenv function. */
+#define HAVE_GETENV 1
+
 /* Define to 1 if you have the gethostbyaddr function. */
 #define HAVE_GETHOSTBYADDR 1
 
@@ -124,12 +133,9 @@
 /* Define to 1 if you have the `if_indextoname' function. */
 #define HAVE_IF_INDEXTONAME 1
 
-/* Define to 1 if you have the `inet_net_pton' function. */
+/* Define to 1 if you have a IPv6 capable working inet_net_pton function. */
 #define HAVE_INET_NET_PTON 1
 
-/* Define to 1 if inet_net_pton supports IPv6. */
-#define HAVE_INET_NET_PTON_IPV6 1
-
 /* Define to 1 if you have a IPv6 capable working inet_ntop function. */
 #define HAVE_INET_NTOP 1
 
@@ -329,13 +335,9 @@
 /* Define to 1 if you have the ws2tcpip.h header file. */
 /* #undef HAVE_WS2TCPIP_H */
 
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
-   */
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
 #define LT_OBJDIR ".libs/"
 
-/* Define to 1 if you are building a native Windows target. */
-/* #undef NATIVE_WINDOWS */
-
 /* Define to 1 if you need the malloc.h header file even with stdlib.h */
 /* #undef NEED_MALLOC_H */
 
@@ -348,9 +350,6 @@
 /* Define to 1 if _THREAD_SAFE preprocessor symbol must be defined. */
 /* #undef NEED_THREAD_SAFE */
 
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-/* #undef NO_MINUS_C_MINUS_O */
-
 /* cpu-machine-OS */
 #define OS "i386-apple-darwin9.8.0"
 
@@ -358,13 +357,13 @@
 #define PACKAGE "c-ares"
 
 /* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "c-ares mailing list => http://cool.haxx.se/mailman/listinfo/c-ares"
+#define PACKAGE_BUGREPORT "c-ares mailing list: http://cool.haxx.se/mailman/listinfo/c-ares"
 
 /* Define to the full name of this package. */
 #define PACKAGE_NAME "c-ares"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "c-ares 1.7.1"
+#define PACKAGE_STRING "c-ares -"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "c-ares"
@@ -373,11 +372,14 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.7.1"
+#define PACKAGE_VERSION "-"
 
 /* a suitable file/device to read random data from */
 #define RANDOM_FILE "/dev/urandom"
 
+/* Define to the type qualifier pointed by arg 5 for recvfrom. */
+#define RECVFROM_QUAL_ARG5
+
 /* Define to the type of arg 1 for recvfrom. */
 #define RECVFROM_TYPE_ARG1 int
 
@@ -450,6 +452,9 @@
 /* The size of `long', as computed by sizeof. */
 #define SIZEOF_LONG 4
 
+/* The size of `short', as computed by sizeof. */
+#define SIZEOF_SHORT 2
+
 /* The size of `size_t', as computed by sizeof. */
 #define SIZEOF_SIZE_T 4
 
@@ -472,7 +477,10 @@
 /* #undef USE_BLOCKING_SOCKETS */
 
 /* Version number of package */
-#define VERSION "1.7.1"
+#define VERSION "-"
+
+/* Define to avoid automatic inclusion of winsock.h */
+/* #undef WIN32_LEAN_AND_MEAN */
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */
@@ -491,6 +499,11 @@
 /* #  undef _ALL_SOURCE */
 #endif
 
+/* Enable large inode numbers on Mac OS X 10.5.  */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif
+
 /* Number of bits in a file offset, on hosts where this is settable. */
 /* #undef _FILE_OFFSET_BITS */
 
@@ -508,5 +521,3 @@
 
 /* the signed version of size_t */
 /* #undef ssize_t */
-
-#define HAVE_GETENV 1
diff --git a/tools/run_tests/sanity/check_submodules.sh b/tools/run_tests/sanity/check_submodules.sh
index b602d695649ffa0643299bfdfdd0331e38fda1e3..e71dd1f85ba0f21cfd750033381535ea4bdf8a8e 100755
--- a/tools/run_tests/sanity/check_submodules.sh
+++ b/tools/run_tests/sanity/check_submodules.sh
@@ -47,9 +47,9 @@ cat << EOF | awk '{ print $1 }' | sort > $want_submodules
  f8ac463766281625ad710900479130c7fcb4d63b third_party/nanopb (nanopb-0.3.4-29-gf8ac463)
  bdeb215cab2985195325fcd5e70c3fa751f46e0f third_party/protobuf (v3.0.0-beta-3.3)
  50893291621658f355bc5b4d450a8d06a563053d third_party/zlib (v1.2.8)
+ e7fe2744db383c4489b7adc2b74f8ec3069367e4 third_party/c-ares (1.11.0)
 EOF
 
 diff -u $submodules $want_submodules
 
 rm $submodules $want_submodules
-