diff --git a/cc/cc_test.go b/cc/cc_test.go
index 2e6c152..90ec811 100644
--- a/cc/cc_test.go
+++ b/cc/cc_test.go
@@ -2734,6 +2734,11 @@
 
 func TestIncludeDirectoryOrdering(t *testing.T) {
 	t.Parallel()
+
+	expectedPlatformFlags := []string{
+		"-nostdlibinc",
+	}
+
 	baseExpectedFlags := []string{
 		"${config.ArmThumbCflags}",
 		"${config.ArmCflags}",
@@ -2795,9 +2800,9 @@
 	cstd := []string{"-std=gnu17", "-std=conly"}
 	cppstd := []string{"-std=gnu++20", "-std=cpp", "-fno-rtti"}
 
-	lastNDKIncludes := []string{
-		"out/soong/ndk/sysroot/usr/include",
-		"out/soong/ndk/sysroot/usr/include/arm-linux-androideabi",
+	lastNDKFlags := []string{
+		"--sysroot",
+		"out/soong/ndk/sysroot",
 	}
 
 	lastPlatformIncludes := []string{
@@ -2821,10 +2826,11 @@
 				expectedNDKSTLIncludes,
 				cflags,
 				cstd,
-				lastNDKIncludes,
+				lastNDKFlags,
 				[]string{"${config.NoOverrideGlobalCflags}", "${config.NoOverrideExternalGlobalCflags}"},
 			),
 			expectedPlatform: slices.Concat(
+				expectedPlatformFlags,
 				baseExpectedFlags,
 				expectedTargetPlatformFlags,
 				conly,
@@ -2846,10 +2852,11 @@
 				expectedNDKSTLIncludes,
 				cflags,
 				cppstd,
-				lastNDKIncludes,
+				lastNDKFlags,
 				[]string{"${config.NoOverrideGlobalCflags}", "${config.NoOverrideExternalGlobalCflags}"},
 			),
 			expectedPlatform: slices.Concat(
+				expectedPlatformFlags,
 				baseExpectedFlags,
 				expectedTargetPlatformFlags,
 				cppOnly,
@@ -2869,9 +2876,10 @@
 				[]string{"${config.CommonGlobalAsflags}"},
 				expectedIncludes,
 				expectedNDKSTLIncludes,
-				lastNDKIncludes,
+				lastNDKFlags,
 			),
 			expectedPlatform: slices.Concat(
+				expectedPlatformFlags,
 				baseExpectedFlags,
 				expectedTargetPlatformFlags,
 				[]string{"${config.CommonGlobalAsflags}"},
diff --git a/cc/compiler.go b/cc/compiler.go
index 7bba962..e49de6f 100644
--- a/cc/compiler.go
+++ b/cc/compiler.go
@@ -430,14 +430,14 @@
 	}
 
 	if ctx.useSdk() {
-		// TODO: Switch to --sysroot.
 		// The NDK headers are installed to a common sysroot. While a more
 		// typical Soong approach would be to only make the headers for the
 		// library you're using available, we're trying to emulate the NDK
 		// behavior here, and the NDK always has all the NDK headers available.
 		flags.SystemIncludeFlags = append(flags.SystemIncludeFlags,
-			"-isystem "+getCurrentIncludePath(ctx).String(),
-			"-isystem "+getCurrentIncludePath(ctx).Join(ctx, config.NDKTriple(tc)).String())
+			"--sysroot "+getNdkSysrootBase(ctx).String())
+	} else if ctx.Device() {
+		flags.Global.CommonFlags = append(flags.Global.CFlags, "-nostdlibinc")
 	}
 
 	if ctx.InVendorOrProduct() {
diff --git a/cc/config/global.go b/cc/config/global.go
index 9d3de6d..d63f86d 100644
--- a/cc/config/global.go
+++ b/cc/config/global.go
@@ -172,7 +172,6 @@
 		"-Werror=address",
 		"-Werror=sequence-point",
 		"-Werror=format-security",
-		"-nostdlibinc",
 	}
 
 	commonGlobalLldflags = []string{
