diff options
| -rw-r--r-- | android/container.go | 5 | ||||
| -rw-r--r-- | android/variable.go | 6 | ||||
| -rw-r--r-- | cc/cc.go | 48 | ||||
| -rw-r--r-- | cc/linkable.go | 4 | ||||
| -rw-r--r-- | filesystem/filesystem.go | 8 | ||||
| -rw-r--r-- | fsgen/filesystem_creator.go | 13 | ||||
| -rw-r--r-- | java/base.go | 27 | ||||
| -rw-r--r-- | java/builder.go | 60 | ||||
| -rw-r--r-- | java/config/config.go | 3 | ||||
| -rw-r--r-- | java/legacy_core_platform_api_usage.go | 3 | ||||
| -rw-r--r-- | rust/rust.go | 9 | ||||
| -rw-r--r-- | rust/sanitize.go | 4 |
12 files changed, 142 insertions, 48 deletions
diff --git a/android/container.go b/android/container.go index 27b17ed99..99e6a3075 100644 --- a/android/container.go +++ b/android/container.go @@ -197,7 +197,10 @@ var unstableInfoProvider = blueprint.NewProvider[unstableInfo]() func determineUnstableModule(mctx ModuleContext) bool { module := mctx.Module() - unstableModule := module.Name() == "framework-minus-apex" + + // TODO(b/383559945) Remove "framework-minus-apex_jarjar-sharded" once + // we remove this module. + unstableModule := module.Name() == "framework-minus-apex" || module.Name() == "framework-minus-apex_jarjar-sharded" if installable, ok := module.(InstallableModule); ok { for _, staticDepTag := range installable.StaticDependencyTags() { mctx.VisitDirectDepsWithTag(staticDepTag, func(dep Module) { diff --git a/android/variable.go b/android/variable.go index 69e0337a6..3cf66eaf1 100644 --- a/android/variable.go +++ b/android/variable.go @@ -617,7 +617,11 @@ type PartitionVariables struct { ProductUseDynamicPartitionSize bool `json:",omitempty"` CopyImagesForTargetFilesZip bool `json:",omitempty"` - VendorSecurityPatch string `json:",omitempty"` + VendorSecurityPatch string `json:",omitempty"` + OdmSecurityPatch string `json:",omitempty"` + SystemDlkmSecurityPatch string `json:",omitempty"` + VendorDlkmSecurityPatch string `json:",omitempty"` + OdmDlkmSecurityPatch string `json:",omitempty"` // Boot image stuff BuildingRamdiskImage bool `json:",omitempty"` @@ -731,9 +731,6 @@ type libraryDependencyTag struct { Kind libraryDependencyKind Order libraryDependencyOrder - // fromStatic is true when the parent module is a static library or binary - fromStatic bool - wholeStatic bool reexportFlags bool @@ -2555,7 +2552,7 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) { } for _, lib := range deps.HeaderLibs { - depTag := libraryDependencyTag{Kind: headerLibraryDependency, fromStatic: c.static()} + depTag := libraryDependencyTag{Kind: headerLibraryDependency} if inList(lib, deps.ReexportHeaderLibHeaders) { depTag.reexportFlags = true } @@ -2597,7 +2594,7 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) { } for _, lib := range deps.WholeStaticLibs { - depTag := libraryDependencyTag{Kind: staticLibraryDependency, wholeStatic: true, reexportFlags: true, fromStatic: c.static()} + depTag := libraryDependencyTag{Kind: staticLibraryDependency, wholeStatic: true, reexportFlags: true} actx.AddVariationDependencies([]blueprint.Variation{ {Mutator: "link", Variation: "static"}, @@ -2606,7 +2603,7 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) { for _, lib := range deps.StaticLibs { // Some dependencies listed in static_libs might actually be rust_ffi rlib variants. - depTag := libraryDependencyTag{Kind: staticLibraryDependency, fromStatic: c.static()} + depTag := libraryDependencyTag{Kind: staticLibraryDependency} if inList(lib, deps.ReexportStaticLibHeaders) { depTag.reexportFlags = true @@ -2623,7 +2620,7 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) { // so that native libraries/binaries are linked with static unwinder // because Q libc doesn't have unwinder APIs if deps.StaticUnwinderIfLegacy { - depTag := libraryDependencyTag{Kind: staticLibraryDependency, staticUnwinder: true, fromStatic: c.static()} + depTag := libraryDependencyTag{Kind: staticLibraryDependency, staticUnwinder: true} actx.AddVariationDependencies([]blueprint.Variation{ {Mutator: "link", Variation: "static"}, }, depTag, staticUnwinder(actx)) @@ -2633,7 +2630,7 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) { var sharedLibNames []string for _, lib := range deps.SharedLibs { - depTag := libraryDependencyTag{Kind: sharedLibraryDependency, fromStatic: c.static()} + depTag := libraryDependencyTag{Kind: sharedLibraryDependency} if inList(lib, deps.ReexportSharedLibHeaders) { depTag.reexportFlags = true } @@ -2654,14 +2651,14 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) { } for _, lib := range deps.LateStaticLibs { - depTag := libraryDependencyTag{Kind: staticLibraryDependency, Order: lateLibraryDependency, fromStatic: c.static()} + depTag := libraryDependencyTag{Kind: staticLibraryDependency, Order: lateLibraryDependency} actx.AddVariationDependencies([]blueprint.Variation{ {Mutator: "link", Variation: "static"}, }, depTag, lib) } for _, lib := range deps.UnexportedStaticLibs { - depTag := libraryDependencyTag{Kind: staticLibraryDependency, Order: lateLibraryDependency, unexportedSymbols: true, fromStatic: c.static()} + depTag := libraryDependencyTag{Kind: staticLibraryDependency, Order: lateLibraryDependency, unexportedSymbols: true} actx.AddVariationDependencies([]blueprint.Variation{ {Mutator: "link", Variation: "static"}, }, depTag, lib) @@ -2674,7 +2671,7 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) { // linking against both the stubs lib and the non-stubs lib at the same time. continue } - depTag := libraryDependencyTag{Kind: sharedLibraryDependency, Order: lateLibraryDependency, fromStatic: c.static()} + depTag := libraryDependencyTag{Kind: sharedLibraryDependency, Order: lateLibraryDependency} variations := []blueprint.Variation{ {Mutator: "link", Variation: "shared"}, } @@ -2722,7 +2719,7 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) { version := ctx.sdkVersion() - ndkStubDepTag := libraryDependencyTag{Kind: sharedLibraryDependency, ndk: true, makeSuffix: "." + version, fromStatic: c.static()} + ndkStubDepTag := libraryDependencyTag{Kind: sharedLibraryDependency, ndk: true, makeSuffix: "." + version} actx.AddVariationDependencies([]blueprint.Variation{ {Mutator: "version", Variation: version}, {Mutator: "link", Variation: "shared"}, @@ -2732,7 +2729,7 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) { {Mutator: "link", Variation: "shared"}, }, ndkStubDepTag, apiNdkLibs...) - ndkLateStubDepTag := libraryDependencyTag{Kind: sharedLibraryDependency, Order: lateLibraryDependency, ndk: true, makeSuffix: "." + version, fromStatic: c.static()} + ndkLateStubDepTag := libraryDependencyTag{Kind: sharedLibraryDependency, Order: lateLibraryDependency, ndk: true, makeSuffix: "." + version} actx.AddVariationDependencies([]blueprint.Variation{ {Mutator: "version", Variation: version}, {Mutator: "link", Variation: "shared"}, @@ -3772,12 +3769,23 @@ func (c *Module) OutgoingDepIsInSameApex(depTag blueprint.DependencyTag) bool { // APEX. return false } + + libDepTag, isLibDepTag := depTag.(libraryDependencyTag) + if isLibDepTag && c.static() && libDepTag.shared() { + // shared_lib dependency from a static lib is considered as crossing + // the APEX boundary because the dependency doesn't actually is + // linked; the dependency is used only during the compilation phase. + return false + } + + if isLibDepTag && libDepTag.excludeInApex { + return false + } + return true } func (c *Module) IncomingDepIsInSameApex(depTag blueprint.DependencyTag) bool { - libDepTag, isLibDepTag := depTag.(libraryDependencyTag) - if c.HasStubsVariants() { if IsSharedDepTag(depTag) { // dynamic dep to a stubs lib crosses APEX boundary @@ -3794,16 +3802,6 @@ func (c *Module) IncomingDepIsInSameApex(depTag blueprint.DependencyTag) bool { if c.IsLlndk() { return false } - if isLibDepTag && libDepTag.fromStatic && libDepTag.shared() { - // shared_lib dependency from a static lib is considered as crossing - // the APEX boundary because the dependency doesn't actually is - // linked; the dependency is used only during the compilation phase. - return false - } - - if isLibDepTag && libDepTag.excludeInApex { - return false - } return true } diff --git a/cc/linkable.go b/cc/linkable.go index 1fade717a..1a9a9abbc 100644 --- a/cc/linkable.go +++ b/cc/linkable.go @@ -294,8 +294,8 @@ func DepTagMakeSuffix(depTag blueprint.DependencyTag) string { } // SharedDepTag returns the dependency tag for any C++ shared libraries. -func SharedDepTag(fromStatic bool) blueprint.DependencyTag { - return libraryDependencyTag{Kind: sharedLibraryDependency, fromStatic: fromStatic} +func SharedDepTag() blueprint.DependencyTag { + return libraryDependencyTag{Kind: sharedLibraryDependency} } // StaticDepTag returns the dependency tag for any C++ static libraries. diff --git a/filesystem/filesystem.go b/filesystem/filesystem.go index eea54a92f..bff0a1014 100644 --- a/filesystem/filesystem.go +++ b/filesystem/filesystem.go @@ -121,6 +121,9 @@ type FilesystemProperties struct { // avbtool. Default used by avbtool is sha1. Avb_hash_algorithm *string + // The security patch passed to as the com.android.build.<type>.security_patch avb property. + Security_patch *string + // Whether or not to use forward-error-correction codes when signing with AVB. Defaults to true. Use_fec *bool @@ -603,6 +606,7 @@ func (f *filesystem) buildImageUsingBuildImage(ctx android.ModuleContext) androi Input(propFile). Implicits(toolDeps). Implicit(fec). + FlagWithArg("--build_datetime_file ", ctx.Config().Getenv("BUILD_DATETIME_FILE")). Output(output). Text(rootDir.String()) // directory where to find fs_config_files|dirs @@ -685,7 +689,9 @@ func (f *filesystem) buildPropFile(ctx android.ModuleContext) (android.Path, and } avb_add_hashtree_footer_args += fmt.Sprintf(" --prop com.android.build.%s.os_version:%s", f.partitionName(), ctx.Config().PlatformVersionLastStable()) avb_add_hashtree_footer_args += fmt.Sprintf(" --prop com.android.build.%s.fingerprint:{CONTENTS_OF:%s}", f.partitionName(), ctx.Config().BuildFingerprintFile(ctx)) - avb_add_hashtree_footer_args += fmt.Sprintf(" --prop com.android.build.%s.security_patch:%s", f.partitionName(), ctx.Config().PlatformSecurityPatch()) + if f.properties.Security_patch != nil && proptools.String(f.properties.Security_patch) != "" { + avb_add_hashtree_footer_args += fmt.Sprintf(" --prop com.android.build.%s.security_patch:%s", f.partitionName(), proptools.String(f.properties.Security_patch)) + } addStr("avb_add_hashtree_footer_args", avb_add_hashtree_footer_args) } diff --git a/fsgen/filesystem_creator.go b/fsgen/filesystem_creator.go index 2dc5077a5..765b28fd6 100644 --- a/fsgen/filesystem_creator.go +++ b/fsgen/filesystem_creator.go @@ -266,6 +266,7 @@ func partitionSpecificFsProps(ctx android.EarlyModuleContext, fsProps *filesyste ) fsProps.Base_dir = proptools.StringPtr("system") fsProps.Dirs = proptools.NewSimpleConfigurable(commonPartitionDirs) + fsProps.Security_patch = proptools.StringPtr(ctx.Config().PlatformSecurityPatch()) case "system_ext": if partitionVars.ProductFsverityGenerateMetadata { fsProps.Fsverity.Inputs = []string{ @@ -275,12 +276,14 @@ func partitionSpecificFsProps(ctx android.EarlyModuleContext, fsProps *filesyste } fsProps.Fsverity.Libs = []string{":framework-res{.export-package.apk}"} } + fsProps.Security_patch = proptools.StringPtr(ctx.Config().PlatformSecurityPatch()) case "product": fsProps.Gen_aconfig_flags_pb = proptools.BoolPtr(true) fsProps.Android_filesystem_deps.System = proptools.StringPtr(generatedModuleNameForPartition(ctx.Config(), "system")) if ctx.DeviceConfig().SystemExtPath() == "system_ext" { fsProps.Android_filesystem_deps.System_ext = proptools.StringPtr(generatedModuleNameForPartition(ctx.Config(), "system_ext")) } + fsProps.Security_patch = proptools.StringPtr(ctx.Config().PlatformSecurityPatch()) case "vendor": fsProps.Gen_aconfig_flags_pb = proptools.BoolPtr(true) fsProps.Symlinks = []filesystem.SymlinkDefinition{ @@ -297,6 +300,7 @@ func partitionSpecificFsProps(ctx android.EarlyModuleContext, fsProps *filesyste if ctx.DeviceConfig().SystemExtPath() == "system_ext" { fsProps.Android_filesystem_deps.System_ext = proptools.StringPtr(generatedModuleNameForPartition(ctx.Config(), "system_ext")) } + fsProps.Security_patch = proptools.StringPtr(partitionVars.VendorSecurityPatch) case "odm": fsProps.Symlinks = []filesystem.SymlinkDefinition{ filesystem.SymlinkDefinition{ @@ -304,6 +308,7 @@ func partitionSpecificFsProps(ctx android.EarlyModuleContext, fsProps *filesyste Name: proptools.StringPtr("lib/modules"), }, } + fsProps.Security_patch = proptools.StringPtr(partitionVars.OdmSecurityPatch) case "userdata": fsProps.Base_dir = proptools.StringPtr("data") case "ramdisk": @@ -358,6 +363,12 @@ func partitionSpecificFsProps(ctx android.EarlyModuleContext, fsProps *filesyste Target: proptools.StringPtr("prop.default"), Name: proptools.StringPtr("default.prop"), }), "root") + case "system_dlkm": + fsProps.Security_patch = proptools.StringPtr(partitionVars.SystemDlkmSecurityPatch) + case "vendor_dlkm": + fsProps.Security_patch = proptools.StringPtr(partitionVars.VendorDlkmSecurityPatch) + case "odm_dlkm": + fsProps.Security_patch = proptools.StringPtr(partitionVars.OdmDlkmSecurityPatch) } } @@ -746,6 +757,8 @@ func generateFsProps(ctx android.EarlyModuleContext, partitionType string) (*fil } fsProps.Is_auto_generated = proptools.BoolPtr(true) + // TODO(b/381120092): Verify mount_point for system partition + fsProps.Mount_point = proptools.StringPtr(partitionType) partitionSpecificFsProps(ctx, fsProps, partitionVars, partitionType) diff --git a/java/base.go b/java/base.go index cd5550a7c..18a875b9c 100644 --- a/java/base.go +++ b/java/base.go @@ -109,6 +109,10 @@ type CommonProperties struct { // if not blank, used as prefix to generate repackage rule Jarjar_prefix *string + // Number of shards for jarjar. It needs to be an integer represented as a string. + // TODO(b/383559945) change it to int, once Configurable supports the type. + Jarjar_shards proptools.Configurable[string] + // If not blank, set the java version passed to javac as -source and -target Java_version *string @@ -1273,7 +1277,7 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath localHeaderJars, combinedHeaderJarFile := j.compileJavaHeader(ctx, uniqueJavaFiles, srcJars, deps, flags, jarName, extraCombinedJars) - combinedHeaderJarFile, jarjared := j.jarjarIfNecessary(ctx, combinedHeaderJarFile, jarName, "turbine") + combinedHeaderJarFile, jarjared := j.jarjarIfNecessary(ctx, combinedHeaderJarFile, jarName, "turbine", false) if jarjared { localHeaderJars = android.Paths{combinedHeaderJarFile} transitiveStaticLibsHeaderJars = nil @@ -1409,7 +1413,7 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath shardingHeaderJars = localHeaderJars var jarjared bool - j.headerJarFile, jarjared = j.jarjarIfNecessary(ctx, combinedHeaderJarFile, jarName, "turbine") + j.headerJarFile, jarjared = j.jarjarIfNecessary(ctx, combinedHeaderJarFile, jarName, "turbine", false) if jarjared { // jarjar modifies transitive static dependencies, use the combined header jar and drop the transitive // static libs header jars. @@ -1643,7 +1647,7 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath } // jarjar implementation jar if necessary - jarjarFile, jarjarred := j.jarjarIfNecessary(ctx, outputFile, jarName, "") + jarjarFile, jarjarred := j.jarjarIfNecessary(ctx, outputFile, jarName, "", true) if jarjarred { localImplementationJars = android.Paths{jarjarFile} completeStaticLibsImplementationJars = depset.New(depset.PREORDER, localImplementationJars, nil) @@ -1652,7 +1656,7 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath // jarjar resource jar if necessary if combinedResourceJar != nil { - resourceJarJarFile, jarjarred := j.jarjarIfNecessary(ctx, combinedResourceJar, jarName, "resource") + resourceJarJarFile, jarjarred := j.jarjarIfNecessary(ctx, combinedResourceJar, jarName, "resource", false) combinedResourceJar = resourceJarJarFile if jarjarred { localResourceJars = android.Paths{resourceJarJarFile} @@ -2941,12 +2945,23 @@ func (j *Module) repackageFlagsIfNecessary(ctx android.ModuleContext, infile and return repackagedJarjarFile, true } -func (j *Module) jarjarIfNecessary(ctx android.ModuleContext, infile android.Path, jarName, info string) (android.Path, bool) { +func (j *Module) jarjarIfNecessary(ctx android.ModuleContext, infile android.Path, jarName, info string, useShards bool) (android.Path, bool) { if j.expandJarjarRules == nil { return infile, false } jarjarFile := android.PathForModuleOut(ctx, "jarjar", info, jarName) - TransformJarJar(ctx, jarjarFile, infile, j.expandJarjarRules) + + totalShards := 1 + if useShards { + totalShardsStr := j.properties.Jarjar_shards.GetOrDefault(ctx, "1") + ts, err := strconv.Atoi(totalShardsStr) + if err != nil { + ctx.PropertyErrorf("jarjar_shards", "jarjar_shards must be an integer represented as a string") + return infile, false + } + totalShards = ts + } + TransformJarJarWithShards(ctx, jarjarFile, infile, j.expandJarjarRules, totalShards) return jarjarFile, true } diff --git a/java/builder.go b/java/builder.go index 01fbbddf5..f25798d3f 100644 --- a/java/builder.go +++ b/java/builder.go @@ -238,12 +238,12 @@ var ( // for newly repackaged classes. Dropping @UnsupportedAppUsage on repackaged classes // avoids adding new hiddenapis after jarjar'ing. " -DremoveAndroidCompatAnnotations=true" + - " -jar ${config.JarjarCmd} process $rulesFile $in $out && " + + " -jar ${config.JarjarCmd} process $rulesFile $in $out $total_shards $shard_index && " + // Turn a missing output file into a ninja error `[ -e ${out} ] || (echo "Missing output file"; exit 1)`, CommandDeps: []string{"${config.JavaCmd}", "${config.JarjarCmd}", "$rulesFile"}, }, - "rulesFile") + "rulesFile", "total_shards", "shard_index") packageCheck = pctx.AndroidStaticRule("packageCheck", blueprint.RuleParams{ @@ -750,16 +750,58 @@ func convertImplementationJarToHeaderJar(ctx android.ModuleContext, implementati func TransformJarJar(ctx android.ModuleContext, outputFile android.WritablePath, classesJar android.Path, rulesFile android.Path) { + TransformJarJarWithShards(ctx, outputFile, classesJar, rulesFile, 1) +} + +func TransformJarJarWithShards(ctx android.ModuleContext, outputFile android.WritablePath, + classesJar android.Path, rulesFile android.Path, totalShards int) { + + // If the total number of shards is 1, just run jarjar as-is, with `total_shards` = 1 + // and `shard_index` == 0, which effectively disables sharding + if totalShards == 1 { + ctx.Build(pctx, android.BuildParams{ + Rule: jarjar, + Description: "jarjar", + Output: outputFile, + Input: classesJar, + Implicit: rulesFile, + Args: map[string]string{ + "rulesFile": rulesFile.String(), + "total_shards": "1", + "shard_index": "0", + }, + }) + return + } + + // Otherwise, run multiple jarjar instances and use merge_zips to combine the output. + tempJars := make([]android.Path, 0) + totalStr := strconv.Itoa(totalShards) + for i := 0; i < totalShards; i++ { + iStr := strconv.Itoa(i) + tempOut := android.PathForOutput(ctx, outputFile.String()+"-"+iStr+".jar") + ctx.Build(pctx, android.BuildParams{ + Rule: jarjar, + Description: "jarjar (" + iStr + "/" + totalStr + ")", + Output: tempOut, + Input: classesJar, + Implicit: rulesFile, + Args: map[string]string{ + "rulesFile": rulesFile.String(), + "total_shards": totalStr, + "shard_index": iStr, + }, + }) + tempJars = append(tempJars, tempOut) + } + ctx.Build(pctx, android.BuildParams{ - Rule: jarjar, - Description: "jarjar", + Rule: combineJar, + Description: "merge jarjar shards", Output: outputFile, - Input: classesJar, - Implicit: rulesFile, - Args: map[string]string{ - "rulesFile": rulesFile.String(), - }, + Inputs: tempJars, }) + } func CheckJarPackages(ctx android.ModuleContext, outputFile android.WritablePath, diff --git a/java/config/config.go b/java/config/config.go index 7c29722a2..19d695291 100644 --- a/java/config/config.go +++ b/java/config/config.go @@ -42,6 +42,9 @@ var ( InstrumentFrameworkModules = []string{ "framework", "framework-minus-apex", + // TODO(b/383559945) Remove "framework-minus-apex_jarjar-sharded" once + // we remove this module. + "framework-minus-apex_jarjar-sharded", "ims-common", "telephony-common", "services", diff --git a/java/legacy_core_platform_api_usage.go b/java/legacy_core_platform_api_usage.go index 4be7d0470..6128ce3df 100644 --- a/java/legacy_core_platform_api_usage.go +++ b/java/legacy_core_platform_api_usage.go @@ -28,6 +28,9 @@ var legacyCorePlatformApiModules = []string{ "FloralClocks", "framework-jobscheduler", "framework-minus-apex", + // TODO(b/383559945) Remove "framework-minus-apex_jarjar-sharded" once + // we remove this module. + "framework-minus-apex_jarjar-sharded", "framework-minus-apex-headers", "framework-minus-apex-intdefs", "FrameworksCoreTests", diff --git a/rust/rust.go b/rust/rust.go index 64cfa40d2..9586b8ce4 100644 --- a/rust/rust.go +++ b/rust/rust.go @@ -1683,7 +1683,7 @@ func (mod *Module) DepsMutator(actx android.BottomUpMutatorContext) { } for _, lib := range deps.SharedLibs { - depTag := cc.SharedDepTag(mod.Static()) + depTag := cc.SharedDepTag() name, version := cc.StubsLibNameAndVersion(lib) variations := []blueprint.Variation{ @@ -1829,6 +1829,13 @@ func (mod *Module) OutgoingDepIsInSameApex(depTag blueprint.DependencyTag) bool return false } + if mod.Static() && cc.IsSharedDepTag(depTag) { + // shared_lib dependency from a static lib is considered as crossing + // the APEX boundary because the dependency doesn't actually is + // linked; the dependency is used only during the compilation phase. + return false + } + return true } diff --git a/rust/sanitize.go b/rust/sanitize.go index 4c82de5e8..b8f922fe2 100644 --- a/rust/sanitize.go +++ b/rust/sanitize.go @@ -281,7 +281,7 @@ func rustSanitizerRuntimeMutator(mctx android.BottomUpMutatorContext) { } else { variations = append(variations, blueprint.Variation{Mutator: "link", Variation: "shared"}) - depTag = cc.SharedDepTag(mod.Static()) + depTag = cc.SharedDepTag() deps = []string{config.LibclangRuntimeLibrary(mod.toolchain(mctx), "asan")} } } else if mod.IsSanitizerEnabled(cc.Hwasan) { @@ -296,7 +296,7 @@ func rustSanitizerRuntimeMutator(mctx android.BottomUpMutatorContext) { // library during final link if necessary variations = append(variations, blueprint.Variation{Mutator: "link", Variation: "shared"}) - depTag = cc.SharedDepTag(mod.Static()) + depTag = cc.SharedDepTag() deps = []string{config.LibclangRuntimeLibrary(mod.toolchain(mctx), "hwasan")} } |