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)
}