diff --git a/cc/cc.go b/cc/cc.go
index d79cdbe..4a87433 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -955,6 +955,10 @@
 		// Host builds will use GNU libstdc++.
 		if ctx.Device() {
 			flags.CFlags = append(flags.CFlags, "-I"+common.PathForSource(ctx, "bionic/libstdc++/include").String())
+		} else {
+			// Host builds will use the system C++. libc++ on Darwin, GNU libstdc++ everywhere else
+			flags.CppFlags = append(flags.CppFlags, flags.Toolchain.SystemCppCppflags())
+			flags.LdFlags = append(flags.LdFlags, flags.Toolchain.SystemCppLdflags())
 		}
 	case "ndk_system":
 		ndkSrcRoot := common.PathForSource(ctx, "prebuilts/ndk/current/sources/cxx-stl/system/include")
diff --git a/cc/toolchain.go b/cc/toolchain.go
index 9f6ad2e..1f51384 100644
--- a/cc/toolchain.go
+++ b/cc/toolchain.go
@@ -70,6 +70,9 @@
 
 	ShlibSuffix() string
 	ExecutableSuffix() string
+
+	SystemCppCppflags() string
+	SystemCppLdflags() string
 }
 
 type toolchainBase struct {
@@ -117,6 +120,14 @@
 	return ""
 }
 
+func (toolchainBase) SystemCppCppflags() string {
+	return ""
+}
+
+func (toolchainBase) SystemCppLdflags() string {
+	return ""
+}
+
 type toolchain64Bit struct {
 	toolchainBase
 }
diff --git a/cc/x86_darwin_host.go b/cc/x86_darwin_host.go
index 7f4c489..9a7b68a 100644
--- a/cc/x86_darwin_host.go
+++ b/cc/x86_darwin_host.go
@@ -32,16 +32,20 @@
 		"-DMACOSX_DEPLOYMENT_TARGET=${macSdkVersion}",
 	}
 
-	darwinCppflags = []string{
-		"-isystem ${macToolchainRoot}/usr/include/c++/v1",
-	}
-
 	darwinLdflags = []string{
 		"-isysroot ${macSdkRoot}",
 		"-Wl,-syslibroot,${macSdkRoot}",
 		"-mmacosx-version-min=${macSdkVersion}",
 	}
 
+	darwinSystemCppCppflags = []string{
+		"-isystem ${macToolchainRoot}/usr/include/c++/v1",
+	}
+
+	darwinSystemCppLdflags = []string{
+		"-stdlib=libc++",
+	}
+
 	// Extended cflags
 	darwinX86Cflags = []string{
 		"-m32",
@@ -74,8 +78,6 @@
 
 	darwinX8664ClangLdflags = clangFilterUnknownCflags(darwinX8664Ldflags)
 
-	darwinClangCppflags = clangFilterUnknownCflags(darwinCppflags)
-
 	darwinSupportedSdkVersions = []string{
 		"macosx10.8",
 		"macosx10.9",
@@ -113,11 +115,12 @@
 
 	pctx.StaticVariable("darwinCflags", strings.Join(darwinCflags, " "))
 	pctx.StaticVariable("darwinLdflags", strings.Join(darwinLdflags, " "))
-	pctx.StaticVariable("darwinCppflags", strings.Join(darwinCppflags, " "))
 
 	pctx.StaticVariable("darwinClangCflags", strings.Join(darwinClangCflags, " "))
 	pctx.StaticVariable("darwinClangLdflags", strings.Join(darwinClangLdflags, " "))
-	pctx.StaticVariable("darwinClangCppflags", strings.Join(darwinClangCppflags, " "))
+
+	pctx.StaticVariable("darwinSystemCppCppflags", strings.Join(darwinSystemCppCppflags, " "))
+	pctx.StaticVariable("darwinSystemCppLdflags", strings.Join(darwinSystemCppLdflags, " "))
 
 	// Extended cflags
 	pctx.StaticVariable("darwinX86Cflags", strings.Join(darwinX86Cflags, " "))
@@ -198,7 +201,7 @@
 }
 
 func (t *toolchainDarwin) Cppflags() string {
-	return "${darwinCppflags}"
+	return ""
 }
 
 func (t *toolchainDarwinX86) Ldflags() string {
@@ -221,10 +224,6 @@
 	return "${darwinClangCflags} ${darwinX86ClangCflags}"
 }
 
-func (t *toolchainDarwinX86) ClangCppflags() string {
-	return "${darwinClangCppflags}"
-}
-
 func (t *toolchainDarwinX8664) ClangTriple() string {
 	return "x86_64-darwin-gnu"
 }
@@ -233,8 +232,8 @@
 	return "${darwinClangCflags} ${darwinX8664ClangCflags}"
 }
 
-func (t *toolchainDarwinX8664) ClangCppflags() string {
-	return "${darwinClangCppflags}"
+func (t *toolchainDarwin) ClangCppflags() string {
+	return ""
 }
 
 func (t *toolchainDarwinX86) ClangLdflags() string {
@@ -249,6 +248,14 @@
 	return ".dylib"
 }
 
+func (t *toolchainDarwin) SystemCppCppflags() string {
+	return "${darwinSystemCppCppflags}"
+}
+
+func (t *toolchainDarwin) SystemCppLdflags() string {
+	return "${darwinSystemCppLdflags}"
+}
+
 var toolchainDarwinX86Singleton Toolchain = &toolchainDarwinX86{}
 var toolchainDarwinX8664Singleton Toolchain = &toolchainDarwinX8664{}
 
