diff --git a/cc/builder.go b/cc/builder.go
index 10c8508..b97f29b 100644
--- a/cc/builder.go
+++ b/cc/builder.go
@@ -79,19 +79,26 @@
 
 	darwinAr = pctx.StaticRule("darwinAr",
 		blueprint.RuleParams{
-			Command:     "rm -f ${out} && $arCmd $arFlags $out $in",
-			CommandDeps: []string{"$arCmd"},
+			Command:     "rm -f ${out} && ${macArPath} $arFlags $out $in",
+			CommandDeps: []string{"${macArPath}"},
 			Description: "ar $out",
 		},
-		"arCmd", "arFlags")
+		"arFlags")
 
 	darwinAppendAr = pctx.StaticRule("darwinAppendAr",
 		blueprint.RuleParams{
-			Command:     "cp -f ${inAr} ${out}.tmp && $arCmd $arFlags ${out}.tmp $in && mv ${out}.tmp ${out}",
-			CommandDeps: []string{"$arCmd"},
+			Command:     "cp -f ${inAr} ${out}.tmp && ${macArPath} $arFlags ${out}.tmp $in && mv ${out}.tmp ${out}",
+			CommandDeps: []string{"${macArPath}"},
 			Description: "ar $out",
 		},
-		"arCmd", "arFlags", "inAr")
+		"arFlags", "inAr")
+
+	darwinStrip = pctx.StaticRule("darwinStrip",
+		blueprint.RuleParams{
+			Command:     "${macStripPath} -u -r -o $out $in",
+			CommandDeps: []string{"${macStripPath}"},
+			Description: "strip $out",
+		})
 
 	prefixSymbols = pctx.StaticRule("prefixSymbols",
 		blueprint.RuleParams{
@@ -252,7 +259,6 @@
 func TransformDarwinObjToStaticLib(ctx common.AndroidModuleContext, objFiles common.Paths,
 	flags builderFlags, outputPath common.ModuleOutPath) {
 
-	arCmd := "${macArPath}"
 	arFlags := "cqs"
 
 	// ARG_MAX on darwin is 262144, use half that to be safe
@@ -278,7 +284,6 @@
 				Inputs:  l,
 				Args: map[string]string{
 					"arFlags": arFlags,
-					"arCmd":   arCmd,
 				},
 			})
 		} else {
@@ -289,7 +294,6 @@
 				Implicits: []string{in},
 				Args: map[string]string{
 					"arFlags": arFlags,
-					"arCmd":   arCmd,
 					"inAr":    in,
 				},
 			})
@@ -439,6 +443,16 @@
 	})
 }
 
+func TransformDarwinStrip(ctx common.AndroidModuleContext, inputFile common.Path,
+	outputFile common.WritablePath) {
+
+	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+		Rule:   darwinStrip,
+		Output: outputFile,
+		Input:  inputFile,
+	})
+}
+
 func CopyGccLib(ctx common.AndroidModuleContext, libName string,
 	flags builderFlags, outputFile common.WritablePath) {
 
diff --git a/cc/cc.go b/cc/cc.go
index 052df2b..1a8ba3b 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -1979,10 +1979,14 @@
 
 func (stripper *stripper) strip(ctx ModuleContext, in, out common.ModuleOutPath,
 	flags builderFlags) {
-	flags.stripKeepSymbols = stripper.StripProperties.Strip.Keep_symbols
-	// TODO(ccross): don't add gnu debuglink for user builds
-	flags.stripAddGnuDebuglink = true
-	TransformStrip(ctx, in, out, flags)
+	if ctx.Darwin() {
+		TransformDarwinStrip(ctx, in, out)
+	} else {
+		flags.stripKeepSymbols = stripper.StripProperties.Strip.Keep_symbols
+		// TODO(ccross): don't add gnu debuglink for user builds
+		flags.stripAddGnuDebuglink = true
+		TransformStrip(ctx, in, out, flags)
+	}
 }
 
 func testPerSrcMutator(mctx common.AndroidBottomUpMutatorContext) {
diff --git a/cc/x86_darwin_host.go b/cc/x86_darwin_host.go
index 559a9a5..52add5c 100644
--- a/cc/x86_darwin_host.go
+++ b/cc/x86_darwin_host.go
@@ -105,6 +105,11 @@
 		return strings.TrimSpace(string(bytes)), err
 	})
 
+	pctx.VariableFunc("macStripPath", func(config interface{}) (string, error) {
+		bytes, err := exec.Command("xcrun", "--find", "strip").Output()
+		return strings.TrimSpace(string(bytes)), err
+	})
+
 	pctx.StaticVariable("darwinGccVersion", darwinGccVersion)
 	pctx.SourcePathVariable("darwinGccRoot",
 		"prebuilts/gcc/${HostPrebuiltTag}/host/i686-apple-darwin-${darwinGccVersion}")
