diff options
Diffstat (limited to 'rust')
-rw-r--r-- | rust/config/arm64_device.go | 8 | ||||
-rw-r--r-- | rust/doc.go | 2 | ||||
-rw-r--r-- | rust/fuzz_test.go | 25 | ||||
-rw-r--r-- | rust/image.go | 2 | ||||
-rw-r--r-- | rust/rust.go | 6 | ||||
-rw-r--r-- | rust/test.go | 2 |
6 files changed, 30 insertions, 15 deletions
diff --git a/rust/config/arm64_device.go b/rust/config/arm64_device.go index 94a445700..efcd56a7b 100644 --- a/rust/config/arm64_device.go +++ b/rust/config/arm64_device.go @@ -45,6 +45,14 @@ var ( "-Z branch-protection=bti,pac-ret", "-Z stack-protector=none", }, + "armv9-3a": []string{ + "-Z branch-protection=bti,pac-ret", + "-Z stack-protector=none", + }, + "armv9-4a": []string{ + "-Z branch-protection=bti,pac-ret", + "-Z stack-protector=none", + }, } ) diff --git a/rust/doc.go b/rust/doc.go index cf2f8b399..3616c8ed5 100644 --- a/rust/doc.go +++ b/rust/doc.go @@ -38,7 +38,7 @@ func (n *rustdocSingleton) GenerateBuildActions(ctx android.SingletonContext) { FlagWithArg("-D ", docDir.String()) ctx.VisitAllModuleProxies(func(module android.ModuleProxy) { - if !android.OtherModuleProviderOrDefault(ctx, module, android.CommonModuleInfoProvider).Enabled { + if !android.OtherModulePointerProviderOrDefault(ctx, module, android.CommonModuleInfoProvider).Enabled { return } diff --git a/rust/fuzz_test.go b/rust/fuzz_test.go index bdcfbbba1..f462795aa 100644 --- a/rust/fuzz_test.go +++ b/rust/fuzz_test.go @@ -134,17 +134,24 @@ func TestCCFuzzDepBundling(t *testing.T) { } `) - fuzz_shared_libtest := ctx.ModuleForTests(t, "fuzz_shared_libtest", "android_arm64_armv8-a_fuzzer").Module().(cc.LinkableInterface) - fuzz_static_libtest := ctx.ModuleForTests(t, "fuzz_static_libtest", "android_arm64_armv8-a_fuzzer").Module().(cc.LinkableInterface) - fuzz_staticffi_libtest := ctx.ModuleForTests(t, "fuzz_staticffi_libtest", "android_arm64_armv8-a_fuzzer").Module().(cc.LinkableInterface) + fuzz_shared_libtest := ctx.ModuleForTests(t, "fuzz_shared_libtest", "android_arm64_armv8-a_fuzzer").Module() + fuzz_static_libtest := ctx.ModuleForTests(t, "fuzz_static_libtest", "android_arm64_armv8-a_fuzzer").Module() + fuzz_staticffi_libtest := ctx.ModuleForTests(t, "fuzz_staticffi_libtest", "android_arm64_armv8-a_fuzzer").Module() - if !strings.Contains(fuzz_shared_libtest.FuzzSharedLibraries().String(), ":libcc_transitive_dep.so") { - t.Errorf("cc_fuzz does not contain the expected bundled transitive shared libs from rust_ffi_shared ('libcc_transitive_dep'): %#v", fuzz_shared_libtest.FuzzSharedLibraries().String()) + fuzzSharedLibraries := func(module android.Module) string { + if info, ok := android.OtherModuleProvider(ctx, module, cc.LinkableInfoProvider); ok { + return info.FuzzSharedLibraries.String() + } + return "" } - if !strings.Contains(fuzz_static_libtest.FuzzSharedLibraries().String(), ":libcc_transitive_dep.so") { - t.Errorf("cc_fuzz does not contain the expected bundled transitive shared libs from rust_ffi_static ('libcc_transitive_dep'): %#v", fuzz_static_libtest.FuzzSharedLibraries().String()) + + if libs := fuzzSharedLibraries(fuzz_shared_libtest); !strings.Contains(libs, ":libcc_transitive_dep.so") { + t.Errorf("cc_fuzz does not contain the expected bundled transitive shared libs from rust_ffi_shared ('libcc_transitive_dep'): %#v", libs) + } + if libs := fuzzSharedLibraries(fuzz_static_libtest); !strings.Contains(libs, ":libcc_transitive_dep.so") { + t.Errorf("cc_fuzz does not contain the expected bundled transitive shared libs from rust_ffi_static ('libcc_transitive_dep'): %#v", libs) } - if !strings.Contains(fuzz_staticffi_libtest.FuzzSharedLibraries().String(), ":libcc_transitive_dep.so") { - t.Errorf("cc_fuzz does not contain the expected bundled transitive shared libs from rust_ffi_static ('libcc_transitive_dep'): %#v", fuzz_staticffi_libtest.FuzzSharedLibraries().String()) + if libs := fuzzSharedLibraries(fuzz_staticffi_libtest); !strings.Contains(libs, ":libcc_transitive_dep.so") { + t.Errorf("cc_fuzz does not contain the expected bundled transitive shared libs from rust_ffi_static ('libcc_transitive_dep'): %#v", libs) } } diff --git a/rust/image.go b/rust/image.go index 51b82893c..aa10a6dfa 100644 --- a/rust/image.go +++ b/rust/image.go @@ -137,7 +137,7 @@ func (mod *Module) InstallInVendor() bool { // Additionally check if this module is inVendor() that means it is a "vendor" variant of a // module. As well as SoC specific modules, vendor variants must be installed to /vendor // unless they have "odm_available: true". - return mod.InVendor() && !mod.VendorVariantToOdm() + return mod.HasVendorVariant() && mod.InVendor() && !mod.VendorVariantToOdm() } func (mod *Module) InstallInOdm() bool { diff --git a/rust/rust.go b/rust/rust.go index 5f3d7a922..54b5d92e3 100644 --- a/rust/rust.go +++ b/rust/rust.go @@ -1480,10 +1480,10 @@ func (mod *Module) depsToPaths(ctx android.ModuleContext) PathDeps { rustInfo, hasRustInfo := android.OtherModuleProvider(ctx, dep, RustInfoProvider) ccInfo, _ := android.OtherModuleProvider(ctx, dep, cc.CcInfoProvider) linkableInfo, hasLinkableInfo := android.OtherModuleProvider(ctx, dep, cc.LinkableInfoProvider) - commonInfo := android.OtherModuleProviderOrDefault(ctx, dep, android.CommonModuleInfoProvider) + commonInfo := android.OtherModulePointerProviderOrDefault(ctx, dep, android.CommonModuleInfoProvider) if hasRustInfo && !linkableInfo.Static && !linkableInfo.Shared { //Handle Rust Modules - makeLibName := rustMakeLibName(rustInfo, linkableInfo, &commonInfo, depName+rustInfo.RustSubName) + makeLibName := rustMakeLibName(rustInfo, linkableInfo, commonInfo, depName+rustInfo.RustSubName) switch { case depTag == dylibDepTag: @@ -1628,7 +1628,7 @@ func (mod *Module) depsToPaths(ctx android.ModuleContext) PathDeps { } } else if hasLinkableInfo { //Handle C dependencies - makeLibName := cc.MakeLibName(ccInfo, linkableInfo, &commonInfo, depName) + makeLibName := cc.MakeLibName(ccInfo, linkableInfo, commonInfo, depName) if !hasRustInfo { if commonInfo.Target.Os != ctx.Os() { ctx.ModuleErrorf("OS mismatch between %q and %q", ctx.ModuleName(), depName) diff --git a/rust/test.go b/rust/test.go index 2fed0d62e..cedced260 100644 --- a/rust/test.go +++ b/rust/test.go @@ -165,7 +165,7 @@ func (test *testDecorator) install(ctx ModuleContext) { if linkableDep.OutputFile.Valid() { // Copy the output in "lib[64]" so that it's compatible with // the default rpath values. - commonInfo := android.OtherModuleProviderOrDefault(ctx, dep, android.CommonModuleInfoProvider) + commonInfo := android.OtherModulePointerProviderOrDefault(ctx, dep, android.CommonModuleInfoProvider) libDir := "lib" if commonInfo.Target.Arch.ArchType.Multilib == "lib64" { libDir = "lib64" |