Revert "Create os and arch variants for GoBinaryTool modules"

This reverts commit 1ec1255476c46623a6973780793a2497b163ab1a.

Reason for revert: b/167632665, broke linux_bionic builds.

Change-Id: I544fb5fd8aab06efa5618f076af3032271d4020f
diff --git a/android/arch.go b/android/arch.go
index 2ddb3f9..9a54614 100644
--- a/android/arch.go
+++ b/android/arch.go
@@ -23,7 +23,6 @@
 	"strings"
 
 	"github.com/google/blueprint"
-	"github.com/google/blueprint/bootstrap"
 	"github.com/google/blueprint/proptools"
 )
 
@@ -690,24 +689,15 @@
 	}
 }
 
-func osMutator(bpctx blueprint.BottomUpMutatorContext) {
+func osMutator(mctx BottomUpMutatorContext) {
 	var module Module
 	var ok bool
-	if module, ok = bpctx.Module().(Module); !ok {
-		if _, ok := bpctx.Module().(bootstrap.GoBinaryTool); ok {
-			// Go tools are always build OS tools.
-			bpctx.CreateVariations(bpctx.Config().(Config).BuildOSTarget.OsVariation())
-		}
+	if module, ok = mctx.Module().(Module); !ok {
 		return
 	}
 
 	base := module.base()
 
-	// GoBinaryTool support above requires this mutator to be a blueprint.BottomUpMutatorContext
-	// because android.BottomUpMutatorContext filters out non-Soong modules.  Now that we've
-	// handled them, create a normal android.BottomUpMutatorContext.
-	mctx := bottomUpMutatorContextFactory(bpctx, module, false)
-
 	if !base.ArchSpecific() {
 		return
 	}
@@ -829,24 +819,15 @@
 //
 // Modules can be initialized with InitAndroidMultiTargetsArchModule, in which case they will be split by OsClass,
 // but will have a common Target that is expected to handle all other selected Targets via ctx.MultiTargets().
-func archMutator(bpctx blueprint.BottomUpMutatorContext) {
+func archMutator(mctx BottomUpMutatorContext) {
 	var module Module
 	var ok bool
-	if module, ok = bpctx.Module().(Module); !ok {
-		if _, ok := bpctx.Module().(bootstrap.GoBinaryTool); ok {
-			// Go tools are always build OS tools.
-			bpctx.CreateVariations(bpctx.Config().(Config).BuildOSTarget.ArchVariation())
-		}
+	if module, ok = mctx.Module().(Module); !ok {
 		return
 	}
 
 	base := module.base()
 
-	// GoBinaryTool support above requires this mutator to be a blueprint.BottomUpMutatorContext
-	// because android.BottomUpMutatorContext filters out non-Soong modules.  Now that we've
-	// handled them, create a normal android.BottomUpMutatorContext.
-	mctx := bottomUpMutatorContextFactory(bpctx, module, false)
-
 	if !base.ArchSpecific() {
 		return
 	}
@@ -922,7 +903,7 @@
 	modules := mctx.CreateVariations(targetNames...)
 	for i, m := range modules {
 		addTargetProperties(m, targets[i], multiTargets, i == 0)
-		m.base().setArchProperties(mctx)
+		m.(Module).base().setArchProperties(mctx)
 	}
 }
 
diff --git a/android/mutator.go b/android/mutator.go
index 5212553..40e61de 100644
--- a/android/mutator.go
+++ b/android/mutator.go
@@ -75,7 +75,6 @@
 type RegisterMutatorsContext interface {
 	TopDown(name string, m TopDownMutator) MutatorHandle
 	BottomUp(name string, m BottomUpMutator) MutatorHandle
-	BottomUpBlueprint(name string, m blueprint.BottomUpMutator) MutatorHandle
 }
 
 type RegisterMutatorFunc func(RegisterMutatorsContext)
@@ -144,9 +143,9 @@
 }
 
 func registerArchMutator(ctx RegisterMutatorsContext) {
-	ctx.BottomUpBlueprint("os", osMutator).Parallel()
+	ctx.BottomUp("os", osMutator).Parallel()
 	ctx.BottomUp("image", imageMutator).Parallel()
-	ctx.BottomUpBlueprint("arch", archMutator).Parallel()
+	ctx.BottomUp("arch", archMutator).Parallel()
 }
 
 var preDeps = []RegisterMutatorFunc{
@@ -226,21 +225,16 @@
 	finalPhase bool
 }
 
-func bottomUpMutatorContextFactory(ctx blueprint.BottomUpMutatorContext, a Module,
-	finalPhase bool) BottomUpMutatorContext {
-
-	return &bottomUpMutatorContext{
-		bp:                ctx,
-		baseModuleContext: a.base().baseModuleContextFactory(ctx),
-		finalPhase:        finalPhase,
-	}
-}
-
 func (x *registerMutatorsContext) BottomUp(name string, m BottomUpMutator) MutatorHandle {
 	finalPhase := x.finalPhase
 	f := func(ctx blueprint.BottomUpMutatorContext) {
 		if a, ok := ctx.Module().(Module); ok {
-			m(bottomUpMutatorContextFactory(ctx, a, finalPhase))
+			actx := &bottomUpMutatorContext{
+				bp:                ctx,
+				baseModuleContext: a.base().baseModuleContextFactory(ctx),
+				finalPhase:        finalPhase,
+			}
+			m(actx)
 		}
 	}
 	mutator := &mutator{name: name, bottomUpMutator: f}
@@ -248,12 +242,6 @@
 	return mutator
 }
 
-func (x *registerMutatorsContext) BottomUpBlueprint(name string, m blueprint.BottomUpMutator) MutatorHandle {
-	mutator := &mutator{name: name, bottomUpMutator: m}
-	x.mutators = append(x.mutators, mutator)
-	return mutator
-}
-
 func (x *registerMutatorsContext) TopDown(name string, m TopDownMutator) MutatorHandle {
 	f := func(ctx blueprint.TopDownMutatorContext) {
 		if a, ok := ctx.Module().(Module); ok {