diff --git a/cc/cc.go b/cc/cc.go
index d5f17a8..0fa3ca9 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -427,6 +427,7 @@
 	No_default_compiler_flags *bool
 
 	AndroidMkSharedLibs []string `blueprint:"mutated"`
+	HideFromMake        bool     `blueprint:"mutated"`
 }
 
 type InstallerProperties struct {
@@ -992,20 +993,6 @@
 	return c.installer.inData()
 }
 
-type appendVariantName interface {
-	appendVariantName(string)
-}
-
-func (c *Module) appendVariantName(name string) {
-	if c.linker == nil {
-		return
-	}
-
-	if l, ok := c.linker.(appendVariantName); ok {
-		l.appendVariantName(name)
-	}
-}
-
 // Compiler
 
 type baseCompiler struct {
@@ -1476,7 +1463,6 @@
 }
 
 var _ linker = (*libraryLinker)(nil)
-var _ appendVariantName = (*libraryLinker)(nil)
 
 func (library *libraryLinker) props() []interface{} {
 	props := library.baseLinker.props()
@@ -1667,10 +1653,6 @@
 	return !library.static()
 }
 
-func (library *libraryLinker) appendVariantName(variant string) {
-	library.Properties.VariantName += variant
-}
-
 type libraryInstaller struct {
 	baseInstaller
 
