Stop using GCC in toolchain_library

Instead, hardcode the ~dozen paths into build/soong/Android.bp, which
will unblock removing more GCC support.

Bug: 114286031
Test: m
Change-Id: I2508432e00b1469141f01e667f3c6a2fe30cd805
diff --git a/cc/toolchain_library.go b/cc/toolchain_library.go
index 2b117b3..20b0f85 100644
--- a/cc/toolchain_library.go
+++ b/cc/toolchain_library.go
@@ -26,8 +26,15 @@
 	android.RegisterModuleType("toolchain_library", toolchainLibraryFactory)
 }
 
+type toolchainLibraryProperties struct {
+	// the prebuilt toolchain library, as a path from the top of the source tree
+	Src *string `android:"arch_variant"`
+}
+
 type toolchainLibraryDecorator struct {
 	*libraryDecorator
+
+	Properties toolchainLibraryProperties
 }
 
 func (*toolchainLibraryDecorator) linkerDeps(ctx DepsContext, deps Deps) Deps {
@@ -35,6 +42,12 @@
 	return deps
 }
 
+func (library *toolchainLibraryDecorator) linkerProps() []interface{} {
+	var props []interface{}
+	props = append(props, library.libraryDecorator.linkerProps()...)
+	return append(props, &library.Properties)
+}
+
 func toolchainLibraryFactory() android.Module {
 	module, library := NewLibrary(android.HostAndDeviceSupported)
 	library.BuildOnlyStatic()
@@ -58,16 +71,10 @@
 func (library *toolchainLibraryDecorator) link(ctx ModuleContext,
 	flags Flags, deps PathDeps, objs Objects) android.Path {
 
-	libName := ctx.ModuleName() + staticLibraryExtension
-	outputFile := android.PathForModuleOut(ctx, libName)
-
-	if flags.Clang {
-		ctx.ModuleErrorf("toolchain_library must use GCC, not Clang")
+	if library.Properties.Src == nil {
+		ctx.PropertyErrorf("src", "No library source specified")
+		return android.PathForSource(ctx, "")
 	}
 
-	CopyGccLib(ctx, libName, flagsToBuilderFlags(flags), outputFile)
-
-	ctx.CheckbuildFile(outputFile)
-
-	return outputFile
+	return android.PathForSource(ctx, *library.Properties.Src)
 }