Merge "Add "TARGET_BOARD_PLATFORM" into ProductVariables" into main
diff --git a/android/androidmk.go b/android/androidmk.go
index 081bca9..f6f4889 100644
--- a/android/androidmk.go
+++ b/android/androidmk.go
@@ -516,6 +516,7 @@
a.Include = "$(BUILD_PREBUILT)"
}
a.Required = append(a.Required, amod.RequiredModuleNames(ctx)...)
+ a.Required = append(a.Required, amod.VintfFragmentModuleNames(ctx)...)
a.Host_required = append(a.Host_required, amod.HostRequiredModuleNames()...)
a.Target_required = append(a.Target_required, amod.TargetRequiredModuleNames()...)
diff --git a/android/testing.go b/android/testing.go
index 79d0c9b..816707d 100644
--- a/android/testing.go
+++ b/android/testing.go
@@ -1038,8 +1038,8 @@
// Exits the test immediately if there is an error and
// otherwise returns the result of calling Paths.RelativeToTop
// on the returned Paths.
-func (m TestingModule) OutputFiles(t *testing.T, tag string) Paths {
- outputFiles := m.Module().base().outputFiles
+func (m TestingModule) OutputFiles(ctx *TestContext, t *testing.T, tag string) Paths {
+ outputFiles := OtherModuleProviderOrDefault(ctx.OtherModuleProviderAdaptor(), m.Module(), OutputFilesProvider)
if tag == "" && outputFiles.DefaultOutputFiles != nil {
return outputFiles.DefaultOutputFiles.RelativeToTop()
} else if taggedOutputFiles, hasTag := outputFiles.TaggedOutputFiles[tag]; hasTag {
diff --git a/android/variable.go b/android/variable.go
index 1bb7c4b..c8744ed 100644
--- a/android/variable.go
+++ b/android/variable.go
@@ -187,10 +187,10 @@
// release_aidl_use_unfrozen is "true" when a device can
// use the unfrozen versions of AIDL interfaces.
Release_aidl_use_unfrozen struct {
- Cflags []string
- Cmd *string
- Required []string
- Vintf_fragments []string
+ Cflags []string
+ Cmd *string
+ Required []string
+ Vintf_fragment_modules []string
}
} `android:"arch_variant"`
}
diff --git a/apex/prebuilt.go b/apex/prebuilt.go
index 8cdfb89..9dc8a63 100644
--- a/apex/prebuilt.go
+++ b/apex/prebuilt.go
@@ -15,9 +15,6 @@
package apex
import (
- "fmt"
- "io"
- "path/filepath"
"strconv"
"strings"
@@ -70,10 +67,6 @@
// fragment for this apex for apexkeys.txt
apexKeysPath android.WritablePath
- // A list of apexFile objects created in prebuiltCommon.initApexFilesForAndroidMk which are used
- // to create make modules in prebuiltCommon.AndroidMkEntries.
- apexFilesForAndroidMk []apexFile
-
// Installed locations of symlinks for backward compatibility.
compatSymlinks android.InstallPaths
@@ -236,11 +229,6 @@
}
func (p *prebuiltCommon) addRequiredModules(entries *android.AndroidMkEntries) {
- for _, fi := range p.apexFilesForAndroidMk {
- entries.AddStrings("LOCAL_REQUIRED_MODULES", fi.requiredModuleNames...)
- entries.AddStrings("LOCAL_TARGET_REQUIRED_MODULES", fi.targetRequiredModuleNames...)
- entries.AddStrings("LOCAL_HOST_REQUIRED_MODULES", fi.hostRequiredModuleNames...)
- }
entries.AddStrings("LOCAL_REQUIRED_MODULES", p.requiredModuleNames...)
}
@@ -272,54 +260,9 @@
entriesList = append(entriesList, install.ToMakeEntries())
}
- // Iterate over the apexFilesForAndroidMk list and create an AndroidMkEntries struct for each
- // file. This provides similar behavior to that provided in apexBundle.AndroidMk() as it makes the
- // apex specific variants of the exported java modules available for use from within make.
- apexName := p.BaseModuleName()
- for _, fi := range p.apexFilesForAndroidMk {
- entries := p.createEntriesForApexFile(fi, apexName)
- entriesList = append(entriesList, entries)
- }
-
return entriesList
}
-// createEntriesForApexFile creates an AndroidMkEntries for the supplied apexFile
-func (p *prebuiltCommon) createEntriesForApexFile(fi apexFile, apexName string) android.AndroidMkEntries {
- moduleName := fi.androidMkModuleName + "." + apexName
- entries := android.AndroidMkEntries{
- Class: fi.class.nameInMake(),
- OverrideName: moduleName,
- OutputFile: android.OptionalPathForPath(fi.builtFile),
- Include: "$(BUILD_SYSTEM)/soong_java_prebuilt.mk",
- ExtraEntries: []android.AndroidMkExtraEntriesFunc{
- func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) {
- entries.SetString("LOCAL_MODULE_PATH", p.installDir.String())
- entries.SetString("LOCAL_SOONG_INSTALLED_MODULE", filepath.Join(p.installDir.String(), fi.stem()))
- entries.SetString("LOCAL_SOONG_INSTALL_PAIRS",
- fi.builtFile.String()+":"+filepath.Join(p.installDir.String(), fi.stem()))
-
- // soong_java_prebuilt.mk sets LOCAL_MODULE_SUFFIX := .jar Therefore
- // we need to remove the suffix from LOCAL_MODULE_STEM, otherwise
- // we will have foo.jar.jar
- entries.SetString("LOCAL_MODULE_STEM", strings.TrimSuffix(fi.stem(), ".jar"))
- entries.SetString("LOCAL_SOONG_DEX_JAR", fi.builtFile.String())
- entries.SetString("LOCAL_DEX_PREOPT", "false")
- },
- },
- ExtraFooters: []android.AndroidMkExtraFootersFunc{
- func(w io.Writer, name, prefix, moduleDir string) {
- // m <module_name> will build <module_name>.<apex_name> as well.
- if fi.androidMkModuleName != moduleName {
- fmt.Fprintf(w, ".PHONY: %s\n", fi.androidMkModuleName)
- fmt.Fprintf(w, "%s: %s\n", fi.androidMkModuleName, moduleName)
- }
- },
- },
- }
- return entries
-}
-
// prebuiltApexModuleCreator defines the methods that need to be implemented by prebuilt_apex and
// apex_set in order to create the modules needed to provide access to the prebuilt .apex file.
type prebuiltApexModuleCreator interface {
diff --git a/cc/cc_test.go b/cc/cc_test.go
index 779e53d..79e386f 100644
--- a/cc/cc_test.go
+++ b/cc/cc_test.go
@@ -302,7 +302,7 @@
ctx := testCcWithConfig(t, config)
testingModule := ctx.ModuleForTests("main_test", "android_arm_armv7-a-neon")
testBinary := testingModule.Module().(*Module).linker.(*testBinary)
- outputFiles := testingModule.OutputFiles(t, "")
+ outputFiles := testingModule.OutputFiles(ctx, t, "")
if len(outputFiles) != 1 {
t.Errorf("expected exactly one output file. output files: [%s]", outputFiles)
return
@@ -355,7 +355,7 @@
testingModule := ctx.ModuleForTests("main_test", "android_arm_armv7-a-neon")
module := testingModule.Module()
testBinary := module.(*Module).linker.(*testBinary)
- outputFiles := testingModule.OutputFiles(t, "")
+ outputFiles := testingModule.OutputFiles(ctx, t, "")
if len(outputFiles) != 1 {
t.Fatalf("expected exactly one output file. output files: [%s]", outputFiles)
}
@@ -1404,7 +1404,7 @@
testingModule := ctx.ModuleForTests("main_test", "android_arm_armv7-a-neon")
module := testingModule.Module()
testBinary := module.(*Module).linker.(*testBinary)
- outputFiles := testingModule.OutputFiles(t, "")
+ outputFiles := testingModule.OutputFiles(ctx, t, "")
if len(outputFiles) != 1 {
t.Errorf("expected exactly one output file. output files: [%s]", outputFiles)
}
@@ -3111,7 +3111,7 @@
config := TestConfig(t.TempDir(), android.Android, nil, bp, nil)
ctx := testCcWithConfig(t, config)
testingModule := ctx.ModuleForTests("test_lib", "android_arm_armv7-a-neon_shared")
- outputFile := testingModule.OutputFiles(t, "stripped_all")
+ outputFile := testingModule.OutputFiles(ctx, t, "stripped_all")
if !strings.HasSuffix(outputFile.Strings()[0], "/stripped_all/test_lib.so") {
t.Errorf("Unexpected output file: %s", outputFile.Strings()[0])
return
diff --git a/cc/config/x86_linux_bionic_host.go b/cc/config/x86_linux_bionic_host.go
index 515cb21..ddc86c2 100644
--- a/cc/config/x86_linux_bionic_host.go
+++ b/cc/config/x86_linux_bionic_host.go
@@ -25,6 +25,8 @@
"-fPIC",
+ "-fno-omit-frame-pointer",
+
"-U_FORTIFY_SOURCE",
"-D_FORTIFY_SOURCE=2",
"-fstack-protector-strong",
diff --git a/cc/config/x86_linux_host.go b/cc/config/x86_linux_host.go
index 7f22377..287967c 100644
--- a/cc/config/x86_linux_host.go
+++ b/cc/config/x86_linux_host.go
@@ -26,6 +26,8 @@
"-fPIC",
+ "-fno-omit-frame-pointer",
+
"-U_FORTIFY_SOURCE",
"-D_FORTIFY_SOURCE=2",
"-fstack-protector",
diff --git a/cc/genrule_test.go b/cc/genrule_test.go
index b3d5116..9a8049b 100644
--- a/cc/genrule_test.go
+++ b/cc/genrule_test.go
@@ -236,7 +236,7 @@
}
`
result := PrepareForIntegrationTestWithCc.RunTestWithBp(t, bp)
- gen_32bit := result.ModuleForTests("gen", "android_arm_armv7-a-neon").OutputFiles(t, "")
+ gen_32bit := result.ModuleForTests("gen", "android_arm_armv7-a-neon").OutputFiles(result.TestContext, t, "")
android.AssertPathsEndWith(t,
"genrule_out",
[]string{
@@ -245,7 +245,7 @@
gen_32bit,
)
- gen_64bit := result.ModuleForTests("gen", "android_arm64_armv8-a").OutputFiles(t, "")
+ gen_64bit := result.ModuleForTests("gen", "android_arm64_armv8-a").OutputFiles(result.TestContext, t, "")
android.AssertPathsEndWith(t,
"genrule_out",
[]string{
diff --git a/cc/sanitize_test.go b/cc/sanitize_test.go
index 80facd8..a1cfb5c 100644
--- a/cc/sanitize_test.go
+++ b/cc/sanitize_test.go
@@ -794,47 +794,47 @@
android.AssertStringListContains(t, "missing libclang_rt.ubsan_minimal in bin_with_ubsan static libs",
strings.Split(binWithUbsan.Rule("ld").Args["libFlags"], " "),
- minimalRuntime.OutputFiles(t, "")[0].String())
+ minimalRuntime.OutputFiles(result.TestContext, t, "")[0].String())
android.AssertStringListContains(t, "missing libclang_rt.ubsan_minimal in bin_depends_ubsan_static static libs",
strings.Split(binDependsUbsan.Rule("ld").Args["libFlags"], " "),
- minimalRuntime.OutputFiles(t, "")[0].String())
+ minimalRuntime.OutputFiles(result.TestContext, t, "")[0].String())
android.AssertStringListContains(t, "missing libclang_rt.ubsan_minimal in libsharedubsan static libs",
strings.Split(libSharedUbsan.Rule("ld").Args["libFlags"], " "),
- minimalRuntime.OutputFiles(t, "")[0].String())
+ minimalRuntime.OutputFiles(result.TestContext, t, "")[0].String())
android.AssertStringListDoesNotContain(t, "unexpected libclang_rt.ubsan_minimal in bin_depends_ubsan_shared static libs",
strings.Split(binDependsUbsanShared.Rule("ld").Args["libFlags"], " "),
- minimalRuntime.OutputFiles(t, "")[0].String())
+ minimalRuntime.OutputFiles(result.TestContext, t, "")[0].String())
android.AssertStringListDoesNotContain(t, "unexpected libclang_rt.ubsan_minimal in bin_no_ubsan static libs",
strings.Split(binNoUbsan.Rule("ld").Args["libFlags"], " "),
- minimalRuntime.OutputFiles(t, "")[0].String())
+ minimalRuntime.OutputFiles(result.TestContext, t, "")[0].String())
android.AssertStringListContains(t, "missing -Wl,--exclude-libs for minimal runtime in bin_with_ubsan",
strings.Split(binWithUbsan.Rule("ld").Args["ldFlags"], " "),
- "-Wl,--exclude-libs="+minimalRuntime.OutputFiles(t, "")[0].Base())
+ "-Wl,--exclude-libs="+minimalRuntime.OutputFiles(result.TestContext, t, "")[0].Base())
android.AssertStringListContains(t, "missing -Wl,--exclude-libs for minimal runtime in bin_depends_ubsan_static static libs",
strings.Split(binDependsUbsan.Rule("ld").Args["ldFlags"], " "),
- "-Wl,--exclude-libs="+minimalRuntime.OutputFiles(t, "")[0].Base())
+ "-Wl,--exclude-libs="+minimalRuntime.OutputFiles(result.TestContext, t, "")[0].Base())
android.AssertStringListContains(t, "missing -Wl,--exclude-libs for minimal runtime in libsharedubsan static libs",
strings.Split(libSharedUbsan.Rule("ld").Args["ldFlags"], " "),
- "-Wl,--exclude-libs="+minimalRuntime.OutputFiles(t, "")[0].Base())
+ "-Wl,--exclude-libs="+minimalRuntime.OutputFiles(result.TestContext, t, "")[0].Base())
android.AssertStringListDoesNotContain(t, "unexpected -Wl,--exclude-libs for minimal runtime in bin_depends_ubsan_shared static libs",
strings.Split(binDependsUbsanShared.Rule("ld").Args["ldFlags"], " "),
- "-Wl,--exclude-libs="+minimalRuntime.OutputFiles(t, "")[0].Base())
+ "-Wl,--exclude-libs="+minimalRuntime.OutputFiles(result.TestContext, t, "")[0].Base())
android.AssertStringListDoesNotContain(t, "unexpected -Wl,--exclude-libs for minimal runtime in bin_no_ubsan static libs",
strings.Split(binNoUbsan.Rule("ld").Args["ldFlags"], " "),
- "-Wl,--exclude-libs="+minimalRuntime.OutputFiles(t, "")[0].Base())
+ "-Wl,--exclude-libs="+minimalRuntime.OutputFiles(result.TestContext, t, "")[0].Base())
android.AssertStringListContains(t, "missing libclang_rt.ubsan_standalone.static in static_bin_with_ubsan_dep static libs",
strings.Split(staticBin.Rule("ld").Args["libFlags"], " "),
- standaloneRuntime.OutputFiles(t, "")[0].String())
+ standaloneRuntime.OutputFiles(result.TestContext, t, "")[0].String())
}
diff --git a/cc/stub_library.go b/cc/stub_library.go
index f15a604..e746a33 100644
--- a/cc/stub_library.go
+++ b/cc/stub_library.go
@@ -61,7 +61,7 @@
}
}
}
- if m.library != nil {
+ if m.library != nil && android.IsModulePreferred(m) {
if p := m.library.getAPIListCoverageXMLPath().String(); p != "" {
s.apiListCoverageXmlPaths = append(s.apiListCoverageXmlPaths, p)
}
diff --git a/cc/testing.go b/cc/testing.go
index ed567af..159f86c 100644
--- a/cc/testing.go
+++ b/cc/testing.go
@@ -713,7 +713,7 @@
func checkSnapshotIncludeExclude(t *testing.T, ctx *android.TestContext, singleton android.TestingSingleton, moduleName, snapshotFilename, subDir, variant string, include bool, fake bool) {
t.Helper()
mod := ctx.ModuleForTests(moduleName, variant)
- outputFiles := mod.OutputFiles(t, "")
+ outputFiles := mod.OutputFiles(ctx, t, "")
if len(outputFiles) != 1 {
t.Errorf("%q must have single output\n", moduleName)
return
diff --git a/java/aar_test.go b/java/aar_test.go
index 877e2c7..aa4f0af 100644
--- a/java/aar_test.go
+++ b/java/aar_test.go
@@ -159,9 +159,9 @@
bar := result.ModuleForTests("bar", "android_common")
baz := result.ModuleForTests("baz", "android_common")
- fooOutputPaths := foo.OutputFiles(t, "")
- barOutputPaths := bar.OutputFiles(t, "")
- bazOutputPaths := baz.OutputFiles(t, "")
+ fooOutputPaths := foo.OutputFiles(result.TestContext, t, "")
+ barOutputPaths := bar.OutputFiles(result.TestContext, t, "")
+ bazOutputPaths := baz.OutputFiles(result.TestContext, t, "")
android.AssertPathsRelativeToTopEquals(t, "foo output path",
[]string{"out/soong/.intermediates/foo/android_common/withres/foo.jar"}, fooOutputPaths)
diff --git a/java/app_test.go b/java/app_test.go
index 6b7d522..ec97a55 100644
--- a/java/app_test.go
+++ b/java/app_test.go
@@ -119,7 +119,7 @@
foo.Output(expectedOutput)
}
- outputFiles := foo.OutputFiles(t, "")
+ outputFiles := foo.OutputFiles(ctx, t, "")
android.AssertPathsRelativeToTopEquals(t, `OutputFiles("")`, expectedOutputs, outputFiles)
}
diff --git a/java/droiddoc_test.go b/java/droiddoc_test.go
index e584640..9e1ebbe 100644
--- a/java/droiddoc_test.go
+++ b/java/droiddoc_test.go
@@ -69,7 +69,7 @@
"bar-doc/a.java": nil,
"bar-doc/b.java": nil,
})
- barStubsOutputs := ctx.ModuleForTests("bar-stubs", "android_common").OutputFiles(t, "")
+ barStubsOutputs := ctx.ModuleForTests("bar-stubs", "android_common").OutputFiles(ctx, t, "")
if len(barStubsOutputs) != 1 {
t.Errorf("Expected one output from \"bar-stubs\" got %s", barStubsOutputs)
}
diff --git a/java/java_test.go b/java/java_test.go
index 477a0b3..9e39b51 100644
--- a/java/java_test.go
+++ b/java/java_test.go
@@ -2919,9 +2919,9 @@
bar := result.ModuleForTests("bar", "android_common")
baz := result.ModuleForTests("baz", "android_common")
- fooOutputPaths := foo.OutputFiles(t, "")
- barOutputPaths := bar.OutputFiles(t, "")
- bazOutputPaths := baz.OutputFiles(t, "")
+ fooOutputPaths := foo.OutputFiles(result.TestContext, t, "")
+ barOutputPaths := bar.OutputFiles(result.TestContext, t, "")
+ bazOutputPaths := baz.OutputFiles(result.TestContext, t, "")
android.AssertPathsRelativeToTopEquals(t, "foo output path",
[]string{"out/soong/.intermediates/foo/android_common/javac/foo.jar"}, fooOutputPaths)
diff --git a/rust/config/global.go b/rust/config/global.go
index 6943467..0c5eb85 100644
--- a/rust/config/global.go
+++ b/rust/config/global.go
@@ -24,7 +24,7 @@
var (
pctx = android.NewPackageContext("android/soong/rust/config")
- RustDefaultVersion = "1.78.0"
+ RustDefaultVersion = "1.79.0"
RustDefaultBase = "prebuilts/rust/"
DefaultEdition = "2021"
Stdlibs = []string{
diff --git a/rust/test_test.go b/rust/test_test.go
index dc796c8..1097da2 100644
--- a/rust/test_test.go
+++ b/rust/test_test.go
@@ -108,7 +108,7 @@
testingModule := ctx.ModuleForTests("main_test", "android_arm64_armv8-a")
testBinary := testingModule.Module().(*Module).compiler.(*testDecorator)
- outputFiles := testingModule.OutputFiles(t, "")
+ outputFiles := testingModule.OutputFiles(ctx, t, "")
if len(outputFiles) != 1 {
t.Fatalf("expected exactly one output file. output files: [%s]", outputFiles)
}
@@ -168,7 +168,7 @@
testingModule := ctx.ModuleForTests("main_test", "android_arm64_armv8-a")
module := testingModule.Module()
testBinary := module.(*Module).compiler.(*testDecorator)
- outputFiles := testingModule.OutputFiles(t, "")
+ outputFiles := testingModule.OutputFiles(ctx, t, "")
if len(outputFiles) != 1 {
t.Fatalf("expected exactly one output file. output files: [%s]", outputFiles)
}
diff --git a/ui/build/config.go b/ui/build/config.go
index dfe0dfe..b8fcb6b 100644
--- a/ui/build/config.go
+++ b/ui/build/config.go
@@ -1041,7 +1041,7 @@
func (c *configImpl) UsedEnvFile(tag string) string {
if v, ok := c.environ.Get("TARGET_PRODUCT"); ok {
- return shared.JoinPath(c.SoongOutDir(), usedEnvFile+"."+v+c.CoverageSuffix()+"."+tag)
+ return shared.JoinPath(c.SoongOutDir(), usedEnvFile+"."+v+"."+tag)
}
return shared.JoinPath(c.SoongOutDir(), usedEnvFile+"."+tag)
}
@@ -1149,13 +1149,6 @@
return "", fmt.Errorf("TARGET_PRODUCT is not defined")
}
-func (c *configImpl) CoverageSuffix() string {
- if v := c.environ.IsEnvTrue("EMMA_INSTRUMENT"); v {
- return ".coverage"
- }
- return ""
-}
-
func (c *configImpl) TargetDevice() string {
return c.targetDevice
}
@@ -1527,7 +1520,7 @@
if err != nil {
return filepath.Join(c.SoongOutDir(), "soong.variables")
} else {
- return filepath.Join(c.SoongOutDir(), "soong."+targetProduct+c.CoverageSuffix()+".variables")
+ return filepath.Join(c.SoongOutDir(), "soong."+targetProduct+".variables")
}
}
@@ -1536,7 +1529,7 @@
if err != nil {
return filepath.Join(c.SoongOutDir(), "soong.extra.variables")
} else {
- return filepath.Join(c.SoongOutDir(), "soong."+targetProduct+c.CoverageSuffix()+".extra.variables")
+ return filepath.Join(c.SoongOutDir(), "soong."+targetProduct+".extra.variables")
}
}
@@ -1545,7 +1538,7 @@
if err != nil {
return filepath.Join(c.SoongOutDir(), "build.ninja")
} else {
- return filepath.Join(c.SoongOutDir(), "build."+targetProduct+c.CoverageSuffix()+".ninja")
+ return filepath.Join(c.SoongOutDir(), "build."+targetProduct+".ninja")
}
}
@@ -1557,11 +1550,11 @@
}
func (c *configImpl) SoongAndroidMk() string {
- return filepath.Join(c.SoongOutDir(), "Android-"+c.TargetProduct()+c.CoverageSuffix()+".mk")
+ return filepath.Join(c.SoongOutDir(), "Android-"+c.TargetProduct()+".mk")
}
func (c *configImpl) SoongMakeVarsMk() string {
- return filepath.Join(c.SoongOutDir(), "make_vars-"+c.TargetProduct()+c.CoverageSuffix()+".mk")
+ return filepath.Join(c.SoongOutDir(), "make_vars-"+c.TargetProduct()+".mk")
}
func (c *configImpl) SoongBuildMetrics() string {
diff --git a/ui/build/kati.go b/ui/build/kati.go
index 5743ff7..a0efd2c 100644
--- a/ui/build/kati.go
+++ b/ui/build/kati.go
@@ -41,7 +41,7 @@
// arguments.
func genKatiSuffix(ctx Context, config Config) {
// Construct the base suffix.
- katiSuffix := "-" + config.TargetProduct() + config.CoverageSuffix()
+ katiSuffix := "-" + config.TargetProduct()
// Append kati arguments to the suffix.
if args := config.KatiArgs(); len(args) > 0 {