Merge "build device binary for java_test_host"
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/android/config.go b/android/config.go
index afc138b..4472036 100644
--- a/android/config.go
+++ b/android/config.go
@@ -658,10 +658,6 @@
return value == "0" || value == "n" || value == "no" || value == "off" || value == "false"
}
-func (c *config) TargetsJava11() bool {
- return c.IsEnvTrue("EXPERIMENTAL_TARGET_JAVA_VERSION_11")
-}
-
// EnvDeps returns the environment variables this build depends on. The first
// call to this function blocks future reads from the environment.
func (c *config) EnvDeps() map[string]string {
diff --git a/android/module.go b/android/module.go
index 3c8c777..2d0813c 100644
--- a/android/module.go
+++ b/android/module.go
@@ -2620,7 +2620,7 @@
}
if aModule == nil {
- b.ModuleErrorf("module %q not an android module", b.OtherModuleName(module))
+ b.ModuleErrorf("module %q (%#v) not an android module", b.OtherModuleName(module), tag)
return nil
}
@@ -2742,8 +2742,8 @@
func (b *baseModuleContext) VisitDirectDepsWithTag(tag blueprint.DependencyTag, visit func(Module)) {
b.bp.VisitDirectDeps(func(module blueprint.Module) {
- if aModule := b.validateAndroidModule(module, b.bp.OtherModuleDependencyTag(module), b.strictVisitDeps); aModule != nil {
- if b.bp.OtherModuleDependencyTag(aModule) == tag {
+ if b.bp.OtherModuleDependencyTag(module) == tag {
+ if aModule := b.validateAndroidModule(module, b.bp.OtherModuleDependencyTag(module), b.strictVisitDeps); aModule != nil {
visit(aModule)
}
}
diff --git a/apex/apex.go b/apex/apex.go
index a6c63de..0ac6eaa 100644
--- a/apex/apex.go
+++ b/apex/apex.go
@@ -3289,6 +3289,7 @@
Prebuilts bazel.LabelListAttribute
Native_shared_libs_32 bazel.LabelListAttribute
Native_shared_libs_64 bazel.LabelListAttribute
+ Compressible bazel.BoolAttribute
}
type convertedNativeSharedLibs struct {
@@ -3366,6 +3367,11 @@
installableAttribute.Value = a.properties.Installable
}
+ var compressibleAttribute bazel.BoolAttribute
+ if a.overridableProperties.Compressible != nil {
+ compressibleAttribute.Value = a.overridableProperties.Compressible
+ }
+
attrs := &bazelApexBundleAttributes{
Manifest: manifestLabelAttribute,
Android_manifest: androidManifestLabelAttribute,
@@ -3379,6 +3385,7 @@
Native_shared_libs_64: nativeSharedLibs.Native_shared_libs_64,
Binaries: binariesLabelListAttribute,
Prebuilts: prebuiltsLabelListAttribute,
+ Compressible: compressibleAttribute,
}
props := bazel.BazelTargetModuleProperties{
diff --git a/bp2build/apex_conversion_test.go b/bp2build/apex_conversion_test.go
index 4b141c9..9057189 100644
--- a/bp2build/apex_conversion_test.go
+++ b/bp2build/apex_conversion_test.go
@@ -104,6 +104,7 @@
certificate: "com.android.apogee.certificate",
updatable: false,
installable: false,
+ compressible: false,
native_shared_libs: [
"native_shared_lib_1",
"native_shared_lib_2",
@@ -150,7 +151,8 @@
":pretend_prebuilt_1",
":pretend_prebuilt_2",
]`,
- "updatable": "False",
+ "updatable": "False",
+ "compressible": "False",
}),
}})
}
diff --git a/bp2build/cc_library_conversion_test.go b/bp2build/cc_library_conversion_test.go
index de4f437..ee19783 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 0f67653..e8ba573 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..9103a48 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",
@@ -89,6 +88,7 @@
"stub_library.go",
],
testSrcs: [
+ "afdo_test.go",
"cc_test.go",
"compiler_test.go",
"gen_test.go",
diff --git a/cc/OWNERS b/cc/OWNERS
index 6d7c30a..a7e6ebb 100644
--- a/cc/OWNERS
+++ b/cc/OWNERS
@@ -1,4 +1,4 @@
per-file ndk_*.go = danalbert@google.com
per-file tidy.go = srhines@google.com, chh@google.com
-per-file lto.go,pgo.go = srhines@google.com, pirama@google.com, yikong@google.com
+per-file afdo.go,afdo_test.go,lto.go,pgo.go = srhines@google.com, pirama@google.com, yikong@google.com
diff --git a/cc/afdo.go b/cc/afdo.go
index f7639fa..d7cce77 100644
--- a/cc/afdo.go
+++ b/cc/afdo.go
@@ -93,7 +93,13 @@
}
func (afdo *afdo) begin(ctx BaseModuleContext) {
- if afdo.Properties.Afdo && !ctx.static() && !ctx.Host() {
+ if ctx.Host() {
+ return
+ }
+ if ctx.static() && !ctx.staticBinary() {
+ return
+ }
+ if afdo.Properties.Afdo {
module := ctx.ModuleName()
if afdo.Properties.GetAfdoProfileFile(ctx, module).Valid() {
afdo.Properties.AfdoTarget = proptools.StringPtr(module)
diff --git a/cc/afdo_test.go b/cc/afdo_test.go
new file mode 100644
index 0000000..5515464
--- /dev/null
+++ b/cc/afdo_test.go
@@ -0,0 +1,70 @@
+// Copyright 2022 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 (
+ "testing"
+
+ "android/soong/android"
+ "github.com/google/blueprint"
+)
+
+func TestAfdoDeps(t *testing.T) {
+ bp := `
+ cc_library {
+ name: "libTest",
+ srcs: ["foo.c"],
+ static_libs: ["libFoo"],
+ afdo: true,
+ }
+
+ cc_library {
+ name: "libFoo",
+ static_libs: ["libBar"],
+ }
+
+ cc_library {
+ name: "libBar",
+ }
+ `
+ prepareForAfdoTest := android.FixtureAddTextFile("toolchain/pgo-profiles/sampling/libTest.afdo", "TEST")
+
+ result := android.GroupFixturePreparers(
+ prepareForCcTest,
+ prepareForAfdoTest,
+ ).RunTestWithBp(t, bp)
+
+ libTest := result.ModuleForTests("libTest", "android_arm64_armv8-a_shared").Module()
+ libFoo := result.ModuleForTests("libFoo", "android_arm64_armv8-a_static_afdo-libTest").Module()
+ libBar := result.ModuleForTests("libBar", "android_arm64_armv8-a_static_afdo-libTest").Module()
+
+ hasDep := func(m android.Module, wantDep android.Module) bool {
+ var found bool
+ result.VisitDirectDeps(m, func(dep blueprint.Module) {
+ if dep == wantDep {
+ found = true
+ }
+ })
+ return found
+ }
+
+ if !hasDep(libTest, libFoo) {
+ t.Errorf("libTest missing dependency on afdo variant of libFoo")
+ }
+
+ if !hasDep(libFoo, libBar) {
+ t.Errorf("libTest missing dependency on afdo variant of libBar")
+ }
+}
diff --git a/cc/androidmk.go b/cc/androidmk.go
index aee820a..b56d689 100644
--- a/cc/androidmk.go
+++ b/cc/androidmk.go
@@ -441,14 +441,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/builder.go b/cc/builder.go
index 512f838..a5e5406 100644
--- a/cc/builder.go
+++ b/cc/builder.go
@@ -744,7 +744,7 @@
arCmd := "${config.ClangBin}/llvm-ar"
arFlags := ""
if !ctx.Darwin() {
- arFlags += " -format=gnu"
+ arFlags += " --format=gnu"
}
if len(wholeStaticLibs) == 0 {
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/pgo.go b/cc/pgo.go
index cd017c4..aa0feae 100644
--- a/cc/pgo.go
+++ b/cc/pgo.go
@@ -208,6 +208,10 @@
ctx.ModuleErrorf("Instrumentation PGO specification is missing benchmark property")
}
+ if isSampling {
+ ctx.ModuleErrorf("Sampling PGO is deprecated, use AFDO instead")
+ }
+
if isSampling && isInstrumentation {
ctx.PropertyErrorf("pgo", "Exactly one of \"instrumentation\" and \"sampling\" properties must be set")
}
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/tidy.go b/cc/tidy.go
index 97418fe..1f5f56d 100644
--- a/cc/tidy.go
+++ b/cc/tidy.go
@@ -156,6 +156,9 @@
// Too many existing functions trigger this rule, and fixing it requires large code
// refactoring. The cost of maintaining this tidy rule outweighs the benefit it brings.
tidyChecks = tidyChecks + ",-bugprone-easily-swappable-parameters"
+ // http://b/216364337 - TODO: Follow-up after compiler update to
+ // disable or fix individual instances.
+ tidyChecks = tidyChecks + ",-cert-err33-c"
flags.TidyFlags = append(flags.TidyFlags, tidyChecks)
if ctx.Config().IsEnvTrue("WITH_TIDY") {
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 {
diff --git a/java/base.go b/java/base.go
index 63328c8..a3eb8de 100644
--- a/java/base.go
+++ b/java/base.go
@@ -122,14 +122,6 @@
Javacflags []string
}
- Openjdk11 struct {
- // List of source files that should only be used when passing -source 1.9 or higher
- Srcs []string `android:"path"`
-
- // List of javac flags that should only be used when passing -source 1.9 or higher
- Javacflags []string
- }
-
// When compiling language level 9+ .java code in packages that are part of
// a system module, patch_module names the module that your sources and
// dependencies should be patched into. The Android runtime currently
@@ -976,9 +968,6 @@
if flags.javaVersion.usesJavaModules() {
j.properties.Srcs = append(j.properties.Srcs, j.properties.Openjdk9.Srcs...)
}
- if ctx.Config().TargetsJava11() {
- j.properties.Srcs = append(j.properties.Srcs, j.properties.Openjdk11.Srcs...)
- }
srcFiles := android.PathsForModuleSrcExcludes(ctx, j.properties.Srcs, j.properties.Exclude_srcs)
if hasSrcExt(srcFiles.Strings(), ".proto") {
diff --git a/java/java.go b/java/java.go
index bec4405..1714152 100644
--- a/java/java.go
+++ b/java/java.go
@@ -451,14 +451,8 @@
return normalizeJavaVersion(ctx, javaVersion)
} else if ctx.Device() {
return defaultJavaLanguageVersion(ctx, sdkContext.SdkVersion(ctx))
- } else if ctx.Config().TargetsJava11() {
- // Temporary experimental flag to be able to try and build with
- // java version 11 options. The flag, if used, just sets Java
- // 11 as the default version, leaving any components that
- // target an older version intact.
- return JAVA_VERSION_11
} else {
- return JAVA_VERSION_9
+ return JAVA_VERSION_11
}
}
diff --git a/java/sdk.go b/java/sdk.go
index 756a24d..0dddd40 100644
--- a/java/sdk.go
+++ b/java/sdk.go
@@ -55,14 +55,10 @@
return JAVA_VERSION_7
} else if sdk.FinalOrFutureInt() <= 29 {
return JAVA_VERSION_8
- } else if ctx.Config().TargetsJava11() {
- // Temporary experimental flag to be able to try and build with
- // java version 11 options. The flag, if used, just sets Java
- // 11 as the default version, leaving any components that
- // target an older version intact.
- return JAVA_VERSION_11
- } else {
+ } else if sdk.FinalOrFutureInt() <= 31 {
return JAVA_VERSION_9
+ } else {
+ return JAVA_VERSION_11
}
}
diff --git a/java/sdk_library.go b/java/sdk_library.go
index 7849f96..57ab268 100644
--- a/java/sdk_library.go
+++ b/java/sdk_library.go
@@ -1392,10 +1392,6 @@
Srcs []string
Javacflags []string
}
- Openjdk11 struct {
- Srcs []string
- Javacflags []string
- }
Dist struct {
Targets []string
Dest *string
@@ -1422,8 +1418,6 @@
}
props.Openjdk9.Srcs = module.properties.Openjdk9.Srcs
props.Openjdk9.Javacflags = module.properties.Openjdk9.Javacflags
- props.Openjdk11.Srcs = module.properties.Openjdk11.Srcs
- props.Openjdk11.Javacflags = module.properties.Openjdk11.Javacflags
// We compile the stubs for 1.8 in line with the main android.jar stubs, and potential
// interop with older developer tools that don't support 1.9.
props.Java_version = proptools.StringPtr("1.8")
diff --git a/linkerconfig/proto/linker_config.proto b/linkerconfig/proto/linker_config.proto
index fec66c8..dccf311 100644
--- a/linkerconfig/proto/linker_config.proto
+++ b/linkerconfig/proto/linker_config.proto
@@ -34,4 +34,16 @@
// Required libs from the module
repeated string requireLibs = 4;
+
+ message Contribution {
+ // Target namespace where this module contributes the search paths.
+ string namespace = 1;
+ // Search paths (inc. permitted paths) that this module contributes.
+ // Paths should be related to the current module and can use "${LIB}" variable which is
+ // expanded to "lib" or "lib64".
+ // e.g. ${LIB}/subdir
+ repeated string paths = 2;
+ }
+ // APEX can contribute search paths to specified namespaces.
+ repeated Contribution contributions = 5;
}