Revert "Verify that ndk_headers headers are valid C."

Revert submission 3207854-ensure-c-ndk-headers

Reason for revert: Droidmonitor created revert due to b/358445530.

Reverted changes: /q/submissionid:3207854-ensure-c-ndk-headers

Change-Id: I649941a4d063d76a1c6a8e58fb885da2c44331c0
diff --git a/cc/ndk_sysroot.go b/cc/ndk_sysroot.go
index f571523..3c48f68 100644
--- a/cc/ndk_sysroot.go
+++ b/cc/ndk_sysroot.go
@@ -54,22 +54,7 @@
 
 import (
 	"android/soong/android"
-	"fmt"
-	"path/filepath"
 	"strings"
-
-	"github.com/google/blueprint"
-)
-
-var (
-	verifyCCompat = pctx.AndroidStaticRule("verifyCCompat",
-		blueprint.RuleParams{
-			Command:     "$ccCmd -x c -fsyntax-only $flags $in && touch $out",
-			CommandDeps: []string{"$ccCmd"},
-		},
-		"ccCmd",
-		"flags",
-	)
 )
 
 func init() {
@@ -118,45 +103,6 @@
 	return android.PathForOutput(ctx, "ndk_abi_headers.txt")
 }
 
-func verifyNdkHeaderIsCCompatible(ctx android.SingletonContext,
-	src android.Path, dest android.Path) android.Path {
-	sysrootInclude := getCurrentIncludePath(ctx)
-	baseOutputDir := android.PathForOutput(ctx, "c-compat-verification")
-	installRelPath, err := filepath.Rel(sysrootInclude.String(), dest.String())
-	if err != nil {
-		ctx.Errorf("filepath.Rel(%q, %q) failed: %s", dest, sysrootInclude, err)
-	}
-	output := baseOutputDir.Join(ctx, installRelPath)
-	ctx.Build(pctx, android.BuildParams{
-		Rule:        verifyCCompat,
-		Description: fmt.Sprintf("Verifying C compatibility of %s", src),
-		Output:      output,
-		Input:       dest,
-		// Ensures that all the headers in the sysroot are already installed
-		// before testing any of the headers for C compatibility, and also that
-		// the check will be re-run whenever the sysroot changes. This is
-		// necessary because many of the NDK headers depend on other NDK
-		// headers, but we don't have explicit dependency tracking for that.
-		Implicits: []android.Path{getNdkHeadersTimestampFile(ctx)},
-		Args: map[string]string{
-			"ccCmd": "${config.ClangBin}/clang",
-			"flags": fmt.Sprintf(
-				// Ideally we'd check each ABI, multiple API levels,
-				// fortify/non-fortify, and a handful of other variations. It's
-				// a lot more difficult to do that though, and would eat up more
-				// build time. All the problems we've seen so far that this
-				// check would catch have been in arch-generic and
-				// minSdkVersion-generic code in frameworks though, so this is a
-				// good place to start.
-				"-target aarch64-linux-android%d --sysroot %s",
-				android.FutureApiLevel.FinalOrFutureInt(),
-				getNdkSysrootBase(ctx).String(),
-			),
-		},
-	})
-	return output
-}
-
 func NdkSingleton() android.Singleton {
 	return &ndkSingleton{}
 }
@@ -197,17 +143,10 @@
 
 type ndkSingleton struct{}
 
-type srcDestPair struct {
-	src  android.Path
-	dest android.Path
-}
-
 func (n *ndkSingleton) GenerateBuildActions(ctx android.SingletonContext) {
 	var staticLibInstallPaths android.Paths
 	var headerSrcPaths android.Paths
 	var headerInstallPaths android.Paths
-	var headersToVerify []srcDestPair
-	var headerCCompatVerificationTimestampPaths android.Paths
 	var installPaths android.Paths
 	var licensePaths android.Paths
 	ctx.VisitAllModules(func(module android.Module) {
@@ -218,14 +157,6 @@
 		if m, ok := module.(*headerModule); ok {
 			headerSrcPaths = append(headerSrcPaths, m.srcPaths...)
 			headerInstallPaths = append(headerInstallPaths, m.installPaths...)
-			if !Bool(m.properties.Skip_verification) {
-				for i, installPath := range m.installPaths {
-					headersToVerify = append(headersToVerify, srcDestPair{
-						src:  m.srcPaths[i],
-						dest: installPath,
-					})
-				}
-			}
 			installPaths = append(installPaths, m.installPaths...)
 			licensePaths = append(licensePaths, m.licensePath)
 		}
@@ -233,10 +164,6 @@
 		if m, ok := module.(*versionedHeaderModule); ok {
 			headerSrcPaths = append(headerSrcPaths, m.srcPaths...)
 			headerInstallPaths = append(headerInstallPaths, m.installPaths...)
-			// Verification intentionally not done for headers that go through
-			// versioner. It'd be nice to have, but the only user is bionic, and
-			// that one module would also need to use skip_verification, so it
-			// wouldn't help at all.
 			installPaths = append(installPaths, m.installPaths...)
 			licensePaths = append(licensePaths, m.licensePath)
 		}
@@ -244,14 +171,6 @@
 		if m, ok := module.(*preprocessedHeadersModule); ok {
 			headerSrcPaths = append(headerSrcPaths, m.srcPaths...)
 			headerInstallPaths = append(headerInstallPaths, m.installPaths...)
-			if !Bool(m.properties.Skip_verification) {
-				for i, installPath := range m.installPaths {
-					headersToVerify = append(headersToVerify, srcDestPair{
-						src:  m.srcPaths[i],
-						dest: installPath,
-					})
-				}
-			}
 			installPaths = append(installPaths, m.installPaths...)
 			licensePaths = append(licensePaths, m.licensePath)
 		}
@@ -304,12 +223,6 @@
 		Implicits: headerInstallPaths,
 	})
 
-	for _, srcDestPair := range headersToVerify {
-		headerCCompatVerificationTimestampPaths = append(
-			headerCCompatVerificationTimestampPaths,
-			verifyNdkHeaderIsCCompatible(ctx, srcDestPair.src, srcDestPair.dest))
-	}
-
 	writeNdkAbiSrcFilter(ctx, headerSrcPaths, getNdkABIHeadersFile(ctx))
 
 	fullDepPaths := append(staticLibInstallPaths, getNdkBaseTimestampFile(ctx))
@@ -322,6 +235,6 @@
 	ctx.Build(pctx, android.BuildParams{
 		Rule:      android.Touch,
 		Output:    getNdkFullTimestampFile(ctx),
-		Implicits: append(fullDepPaths, headerCCompatVerificationTimestampPaths...),
+		Implicits: fullDepPaths,
 	})
 }