Delete toolchain_library
Test: m && ci
Change-Id: Iab5267e02e3559431d980c70a58b49c2b8b4e6de
diff --git a/Android.bp b/Android.bp
index 0e8d86d..7c50047 100644
--- a/Android.bp
+++ b/Android.bp
@@ -46,25 +46,6 @@
// C static libraries extracted from the gcc toolchain
//
-toolchain_library {
- name: "libwinpthread",
- host_supported: true,
- enabled: false,
- target: {
- windows: {
- enabled: true,
- },
- windows_x86: {
- src: "prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib32/libwinpthread.a",
- },
- windows_x86_64: {
- src: "prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/libwinpthread.a",
- },
- },
- notice: ":mingw-libwinpthread-notice",
- licenses: ["winpthreads_license"],
-}
-
kernel_headers {
name: "device_kernel_headers",
vendor: true,
diff --git a/bp2build/cc_library_conversion_test.go b/bp2build/cc_library_conversion_test.go
index 59a2389..9decea4 100644
--- a/bp2build/cc_library_conversion_test.go
+++ b/bp2build/cc_library_conversion_test.go
@@ -27,17 +27,6 @@
soongCcLibraryPreamble = `
cc_defaults {
name: "linux_bionic_supported",
-}
-
-toolchain_library {
- name: "libclang_rt.builtins-x86_64-android",
- defaults: ["linux_bionic_supported"],
- vendor_available: true,
- vendor_ramdisk_available: true,
- product_available: true,
- recovery_available: true,
- native_bridge_supported: true,
- src: "",
}`
soongCcProtoLibraries = `
@@ -64,7 +53,6 @@
ctx.RegisterModuleType("filegroup", android.FileGroupFactory)
ctx.RegisterModuleType("cc_library_static", cc.LibraryStaticFactory)
ctx.RegisterModuleType("cc_prebuilt_library_static", cc.PrebuiltStaticLibraryFactory)
- ctx.RegisterModuleType("toolchain_library", cc.ToolchainLibraryFactory)
ctx.RegisterModuleType("cc_library_headers", cc.LibraryHeaderFactory)
}
@@ -1264,7 +1252,7 @@
include_build_directory: false,
}
`,
- expectedErr: fmt.Errorf("Android.bp:16:1: module \"foo-lib\": nocrt is not supported for arch variants"),
+ expectedErr: fmt.Errorf("module \"foo-lib\": nocrt is not supported for arch variants"),
})
}
diff --git a/bp2build/cc_library_headers_conversion_test.go b/bp2build/cc_library_headers_conversion_test.go
index 594c050..e4cfa35 100644
--- a/bp2build/cc_library_headers_conversion_test.go
+++ b/bp2build/cc_library_headers_conversion_test.go
@@ -26,17 +26,6 @@
soongCcLibraryHeadersPreamble = `
cc_defaults {
name: "linux_bionic_supported",
-}
-
-toolchain_library {
- name: "libclang_rt.builtins-x86_64-android",
- defaults: ["linux_bionic_supported"],
- vendor_available: true,
- vendor_ramdisk_available: true,
- product_available: true,
- recovery_available: true,
- native_bridge_supported: true,
- src: "",
}`
)
@@ -68,7 +57,6 @@
func registerCcLibraryHeadersModuleTypes(ctx android.RegistrationContext) {
cc.RegisterCCBuildComponents(ctx)
- ctx.RegisterModuleType("toolchain_library", cc.ToolchainLibraryFactory)
}
func runCcLibraryHeadersTestCase(t *testing.T, tc bp2buildTestCase) {
diff --git a/bp2build/cc_library_shared_conversion_test.go b/bp2build/cc_library_shared_conversion_test.go
index 97a600a..7741de3 100644
--- a/bp2build/cc_library_shared_conversion_test.go
+++ b/bp2build/cc_library_shared_conversion_test.go
@@ -30,7 +30,6 @@
func registerCcLibrarySharedModuleTypes(ctx android.RegistrationContext) {
cc.RegisterCCBuildComponents(ctx)
- ctx.RegisterModuleType("toolchain_library", cc.ToolchainLibraryFactory)
ctx.RegisterModuleType("cc_library_headers", cc.LibraryHeaderFactory)
ctx.RegisterModuleType("cc_library_static", cc.LibraryStaticFactory)
ctx.RegisterModuleType("cc_library", cc.LibraryFactory)
@@ -422,7 +421,7 @@
include_build_directory: false,
}
`,
- expectedErr: fmt.Errorf("Android.bp:16:1: module \"foo_shared\": nocrt is not supported for arch variants"),
+ expectedErr: fmt.Errorf("module \"foo_shared\": nocrt is not supported for arch variants"),
})
}
diff --git a/bp2build/cc_library_static_conversion_test.go b/bp2build/cc_library_static_conversion_test.go
index fac741c..f1684c4 100644
--- a/bp2build/cc_library_static_conversion_test.go
+++ b/bp2build/cc_library_static_conversion_test.go
@@ -27,17 +27,6 @@
soongCcLibraryStaticPreamble = `
cc_defaults {
name: "linux_bionic_supported",
-}
-
-toolchain_library {
- name: "libclang_rt.builtins-x86_64-android",
- defaults: ["linux_bionic_supported"],
- vendor_available: true,
- vendor_ramdisk_available: true,
- product_available: true,
- recovery_available: true,
- native_bridge_supported: true,
- src: "",
}`
)
@@ -69,7 +58,6 @@
func registerCcLibraryStaticModuleTypes(ctx android.RegistrationContext) {
cc.RegisterCCBuildComponents(ctx)
- ctx.RegisterModuleType("toolchain_library", cc.ToolchainLibraryFactory)
ctx.RegisterModuleType("cc_library_headers", cc.LibraryHeaderFactory)
ctx.RegisterModuleType("genrule", genrule.GenRuleFactory)
// Required for system_shared_libs dependencies.
diff --git a/cc/Android.bp b/cc/Android.bp
index 0bf0045..cf45630 100644
--- a/cc/Android.bp
+++ b/cc/Android.bp
@@ -68,7 +68,6 @@
"native_bridge_sdk_trait.go",
"object.go",
"test.go",
- "toolchain_library.go",
"ndk_abi.go",
"ndk_headers.go",
diff --git a/cc/androidmk.go b/cc/androidmk.go
index 800b58f..0d2697f 100644
--- a/cc/androidmk.go
+++ b/cc/androidmk.go
@@ -439,14 +439,6 @@
ctx.subAndroidMk(entries, test.libraryDecorator)
}
-func (library *toolchainLibraryDecorator) AndroidMkEntries(ctx AndroidMkContext, entries *android.AndroidMkEntries) {
- entries.Class = "STATIC_LIBRARIES"
- entries.ExtraEntries = append(entries.ExtraEntries, func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) {
- _, suffix, _ := android.SplitFileExt(entries.OutputFile.Path().Base())
- entries.SetString("LOCAL_MODULE_SUFFIX", suffix)
- })
-}
-
func (installer *baseInstaller) AndroidMkEntries(ctx AndroidMkContext, entries *android.AndroidMkEntries) {
if installer.path == (android.InstallPath{}) {
return
diff --git a/cc/cc.go b/cc/cc.go
index 9c35348..31babc2 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -548,8 +548,7 @@
}
// compiler is the interface for a compiler helper object. Different module decorators may implement
-// this helper differently. For example, compiling a `cc_library` may use a different build
-// statement than building a `toolchain_library`.
+// this helper differently.
type compiler interface {
compilerInit(ctx BaseModuleContext)
compilerDeps(ctx DepsContext, deps Deps) Deps
@@ -979,13 +978,6 @@
return ""
}
-func (c *Module) ToolchainLibrary() bool {
- if _, ok := c.linker.(*toolchainLibraryDecorator); ok {
- return true
- }
- return false
-}
-
func (c *Module) NdkPrebuiltStl() bool {
if _, ok := c.linker.(*ndkPrebuiltStlLinker); ok {
return true
@@ -2450,10 +2442,6 @@
return
}
if c, ok := to.(*Module); ok {
- if c.ToolchainLibrary() {
- // These are always allowed
- return
- }
if c.NdkPrebuiltStl() {
// These are allowed, but they don't set sdk_version
return
@@ -3439,10 +3427,6 @@
if strings.HasPrefix(ctx.OtherModuleName(c), "libclang_rt") {
return nil
}
- // b/154569636: set min_sdk_version correctly for toolchain_libraries
- if c.ToolchainLibrary() {
- return nil
- }
// We don't check for prebuilt modules
if _, ok := c.linker.(prebuiltLinkerInterface); ok {
return nil
diff --git a/cc/linker.go b/cc/linker.go
index aaaca7a..bea65d4 100644
--- a/cc/linker.go
+++ b/cc/linker.go
@@ -427,7 +427,7 @@
deps.LateSharedLibs = append(deps.LateSharedLibs, deps.SystemSharedLibs...)
- if ctx.Windows() {
+ if ctx.Windows() && ctx.ModuleName() != "libwinpthread" {
deps.LateStaticLibs = append(deps.LateStaticLibs, "libwinpthread")
}
diff --git a/cc/testing.go b/cc/testing.go
index 3bf936d..3d0c10a 100644
--- a/cc/testing.go
+++ b/cc/testing.go
@@ -30,7 +30,6 @@
RegisterLibraryBuildComponents(ctx)
RegisterLibraryHeadersBuildComponents(ctx)
- ctx.RegisterModuleType("toolchain_library", ToolchainLibraryFactory)
ctx.RegisterModuleType("cc_benchmark", BenchmarkFactory)
ctx.RegisterModuleType("cc_object", ObjectFactory)
ctx.RegisterModuleType("cc_genrule", GenRuleFactory)
@@ -63,41 +62,14 @@
func commonDefaultModules() string {
return `
- toolchain_library {
- name: "libcompiler_rt-extras",
+ cc_defaults {
+ name: "toolchain_libs_defaults",
vendor_available: true,
- vendor_ramdisk_available: true,
product_available: true,
recovery_available: true,
- src: "",
- }
-
- toolchain_library {
- name: "libclang_rt.builtins-arm-android",
- vendor_available: true,
- vendor_ramdisk_available: true,
- product_available: true,
- recovery_available: true,
- native_bridge_supported: true,
- src: "",
- }
-
- toolchain_library {
- name: "libclang_rt.builtins-aarch64-android",
- vendor_available: true,
- vendor_ramdisk_available: true,
- product_available: true,
- recovery_available: true,
- native_bridge_supported: true,
- src: "",
- }
-
- cc_prebuilt_library_shared {
- name: "libclang_rt.hwasan-aarch64-android",
+ no_libcrt: true,
+ sdk_version: "minimum",
nocrt: true,
- vendor_available: true,
- product_available: true,
- recovery_available: true,
system_shared_libs: [],
stl: "none",
srcs: [""],
@@ -107,87 +79,93 @@
},
}
- toolchain_library {
+ cc_prebuilt_library_static {
+ name: "libcompiler_rt-extras",
+ defaults: ["toolchain_libs_defaults"],
+ vendor_ramdisk_available: true,
+ }
+
+ cc_prebuilt_library_static {
+ name: "libclang_rt.builtins-arm-android",
+ defaults: ["toolchain_libs_defaults"],
+ native_bridge_supported: true,
+ vendor_ramdisk_available: true,
+ }
+
+ cc_prebuilt_library_static {
+ name: "libclang_rt.builtins-aarch64-android",
+ defaults: ["toolchain_libs_defaults"],
+ native_bridge_supported: true,
+ vendor_ramdisk_available: true,
+ }
+
+ cc_prebuilt_library_shared {
+ name: "libclang_rt.hwasan-aarch64-android",
+ defaults: ["toolchain_libs_defaults"],
+ }
+
+ cc_prebuilt_library_static {
name: "libclang_rt.builtins-i686-android",
- vendor_available: true,
+ defaults: ["toolchain_libs_defaults"],
vendor_ramdisk_available: true,
- product_available: true,
- recovery_available: true,
native_bridge_supported: true,
- src: "",
}
- toolchain_library {
+ cc_prebuilt_library_static {
name: "libclang_rt.builtins-x86_64-android",
- defaults: ["linux_bionic_supported"],
- vendor_available: true,
- vendor_ramdisk_available: true,
- product_available: true,
- recovery_available: true,
+ defaults: [
+ "linux_bionic_supported",
+ "toolchain_libs_defaults",
+ ],
native_bridge_supported: true,
- src: "",
+ vendor_ramdisk_available: true,
}
- toolchain_library {
+ cc_prebuilt_library_static {
name: "libunwind",
- defaults: ["linux_bionic_supported"],
- vendor_available: true,
+ defaults: [
+ "linux_bionic_supported",
+ "toolchain_libs_defaults",
+ ],
vendor_ramdisk_available: true,
- product_available: true,
- recovery_available: true,
native_bridge_supported: true,
- src: "",
}
- toolchain_library {
+ cc_prebuilt_library_static {
name: "libclang_rt.fuzzer-arm-android",
- vendor_available: true,
- product_available: true,
- recovery_available: true,
- src: "",
+ defaults: ["toolchain_libs_defaults"],
}
- toolchain_library {
+ cc_prebuilt_library_static {
name: "libclang_rt.fuzzer-aarch64-android",
- vendor_available: true,
- product_available: true,
- recovery_available: true,
- src: "",
+ defaults: ["toolchain_libs_defaults"],
}
- toolchain_library {
+ cc_prebuilt_library_static {
name: "libclang_rt.fuzzer-i686-android",
- vendor_available: true,
- product_available: true,
- recovery_available: true,
- src: "",
+ defaults: ["toolchain_libs_defaults"],
}
- toolchain_library {
+ cc_prebuilt_library_static {
name: "libclang_rt.fuzzer-x86_64-android",
- defaults: ["linux_bionic_supported"],
- vendor_available: true,
- product_available: true,
- recovery_available: true,
- src: "",
+ defaults: [
+ "linux_bionic_supported",
+ "toolchain_libs_defaults",
+ ],
}
- toolchain_library {
+ cc_prebuilt_library_static {
name: "libclang_rt.fuzzer-x86_64",
- vendor_available: true,
- product_available: true,
- recovery_available: true,
- src: "",
+ defaults: [
+ "linux_bionic_supported",
+ "toolchain_libs_defaults",
+ ],
}
// Needed for sanitizer
cc_prebuilt_library_shared {
name: "libclang_rt.ubsan_standalone-aarch64-android",
- vendor_available: true,
- product_available: true,
- recovery_available: true,
- system_shared_libs: [],
- srcs: [""],
+ defaults: ["toolchain_libs_defaults"],
}
cc_library {
@@ -480,7 +458,7 @@
func withWindowsModules() string {
return `
- toolchain_library {
+ cc_prebuilt_library_static {
name: "libwinpthread",
host_supported: true,
enabled: false,
@@ -489,7 +467,8 @@
enabled: true,
},
},
- src: "",
+ stl: "none",
+ srcs:[""],
}
`
}
diff --git a/cc/toolchain_library.go b/cc/toolchain_library.go
deleted file mode 100644
index bda73ea..0000000
--- a/cc/toolchain_library.go
+++ /dev/null
@@ -1,117 +0,0 @@
-// Copyright 2016 Google Inc. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package cc
-
-import (
- "android/soong/android"
-)
-
-//
-// Device libraries shipped with gcc
-//
-
-func init() {
- 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"`
-
- // Repack the archive with only the selected objects.
- Repack_objects_to_keep []string `android:"arch_variant"`
-}
-
-type toolchainLibraryDecorator struct {
- *libraryDecorator
- stripper Stripper
-
- Properties toolchainLibraryProperties
-}
-
-func (*toolchainLibraryDecorator) linkerDeps(ctx DepsContext, deps Deps) Deps {
- // toolchain libraries can't have any dependencies
- return deps
-}
-
-func (library *toolchainLibraryDecorator) linkerProps() []interface{} {
- var props []interface{}
- props = append(props, library.libraryDecorator.linkerProps()...)
- return append(props, &library.Properties, &library.stripper.StripProperties)
-}
-
-// toolchain_library is used internally by the build tool to link the specified
-// static library in src property to the device libraries that are shipped with
-// gcc.
-func ToolchainLibraryFactory() android.Module {
- module, library := NewLibrary(android.HostAndDeviceSupported)
- library.BuildOnlyStatic()
- toolchainLibrary := &toolchainLibraryDecorator{
- libraryDecorator: library,
- }
- module.compiler = toolchainLibrary
- module.linker = toolchainLibrary
- module.stl = nil
- module.sanitize = nil
- module.installer = nil
- module.library = toolchainLibrary
- module.Properties.Sdk_version = StringPtr("current")
- return module.Init()
-}
-
-func (library *toolchainLibraryDecorator) compile(ctx ModuleContext, flags Flags,
- deps PathDeps) Objects {
- return Objects{}
-}
-
-func (library *toolchainLibraryDecorator) link(ctx ModuleContext,
- flags Flags, deps PathDeps, objs Objects) android.Path {
-
- if library.Properties.Src == nil {
- ctx.PropertyErrorf("src", "No library source specified")
- return android.PathForSource(ctx, "")
- }
-
- srcPath := android.PathForSource(ctx, *library.Properties.Src)
- outputFile := android.Path(srcPath)
-
- if library.Properties.Repack_objects_to_keep != nil {
- fileName := ctx.ModuleName() + staticLibraryExtension
- repackedPath := android.PathForModuleOut(ctx, fileName)
- transformArchiveRepack(ctx, outputFile, repackedPath, library.Properties.Repack_objects_to_keep)
- outputFile = repackedPath
- }
-
- if library.stripper.StripProperties.Strip.Keep_symbols_list != nil {
- fileName := ctx.ModuleName() + staticLibraryExtension
- strippedPath := android.PathForModuleOut(ctx, fileName)
- stripFlags := flagsToStripFlags(flags)
- library.stripper.StripStaticLib(ctx, outputFile, strippedPath, stripFlags)
- outputFile = strippedPath
- }
-
- depSet := android.NewDepSetBuilder(android.TOPOLOGICAL).Direct(outputFile).Build()
- ctx.SetProvider(StaticLibraryInfoProvider, StaticLibraryInfo{
- StaticLibrary: outputFile,
-
- TransitiveStaticLibrariesForOrdering: depSet,
- })
-
- return outputFile
-}
-
-func (library *toolchainLibraryDecorator) nativeCoverage() bool {
- return false
-}
diff --git a/cc/vendor_snapshot_test.go b/cc/vendor_snapshot_test.go
index b5022c8..645b2cc 100644
--- a/cc/vendor_snapshot_test.go
+++ b/cc/vendor_snapshot_test.go
@@ -65,10 +65,13 @@
nocrt: true,
}
- toolchain_library {
+ cc_prebuilt_library_static {
name: "libb",
vendor_available: true,
- src: "libb.a",
+ srcs: ["libb.a"],
+ nocrt: true,
+ no_libcrt: true,
+ stl: "none",
}
cc_object {
@@ -1222,10 +1225,13 @@
nocrt: true,
}
- toolchain_library {
+ cc_prebuilt_library_static {
name: "libb",
recovery_available: true,
- src: "libb.a",
+ srcs: ["libb.a"],
+ nocrt: true,
+ no_libcrt: true,
+ stl: "none",
}
cc_object {