Loading apex/apex.go +11 −0 Original line number Diff line number Diff line Loading @@ -521,6 +521,17 @@ func (a *apexBundle) DepsMutator(ctx android.BottomUpMutatorContext) { a.properties.Multilib.Prefer32.Binaries, target.String(), a.getImageVariation(config)) } if strings.HasPrefix(ctx.ModuleName(), "com.android.runtime") && target.Os.Class == android.Device { for _, sanitizer := range ctx.Config().SanitizeDevice() { if sanitizer == "hwaddress" { addDependenciesForNativeModules(ctx, []string{"libclang_rt.hwasan-aarch64-android"}, nil, target.String(), a.getImageVariation(config)) break } } } } } Loading cc/binary.go +2 −2 Original line number Diff line number Diff line Loading @@ -440,8 +440,8 @@ func (binary *binaryDecorator) install(ctx ModuleContext, file android.Path) { // Bionic binaries (e.g. linker) is installed to the bootstrap subdirectory. // The original path becomes a symlink to the corresponding file in the // runtime APEX. if isBionic(ctx.baseModuleName()) && ctx.Arch().Native && ctx.apexName() == "" && !ctx.inRecovery() { if ctx.Device() { if installToBootstrap(ctx.baseModuleName(), ctx.Config()) && ctx.Arch().Native && ctx.apexName() == "" && !ctx.inRecovery() { if ctx.Device() && isBionic(ctx.baseModuleName()) { binary.installSymlinkToRuntimeApex(ctx, file) } binary.baseInstaller.subDir = "bootstrap" Loading cc/cc.go +10 −0 Original line number Diff line number Diff line Loading @@ -600,6 +600,9 @@ func (c *Module) HasStubsVariants() bool { if library, ok := c.linker.(*libraryDecorator); ok { return len(library.Properties.Stubs.Versions) > 0 } if library, ok := c.linker.(*prebuiltLibraryLinker); ok { return len(library.Properties.Stubs.Versions) > 0 } return false } Loading @@ -619,6 +622,13 @@ func isBionic(name string) bool { return false } func installToBootstrap(name string, config android.Config) bool { if name == "libclang_rt.hwasan-aarch64-android" { return inList("hwaddress", config.SanitizeDevice()) } return isBionic(name) } type baseModuleContext struct { android.BaseContext moduleContextImpl Loading cc/library.go +3 −3 Original line number Diff line number Diff line Loading @@ -957,12 +957,12 @@ func (library *libraryDecorator) install(ctx ModuleContext, file android.Path) { library.baseInstaller.subDir += "-" + vndkVersion } } } else if len(library.Properties.Stubs.Versions) > 0 && android.DirectlyInAnyApex(ctx, ctx.ModuleName()) { } else if len(library.Properties.Stubs.Versions) > 0 { // Bionic libraries (e.g. libc.so) is installed to the bootstrap subdirectory. // The original path becomes a symlink to the corresponding file in the // runtime APEX. if isBionic(ctx.baseModuleName()) && !library.buildStubs() && ctx.Arch().Native && !ctx.inRecovery() { if ctx.Device() { if installToBootstrap(ctx.baseModuleName(), ctx.Config()) && !library.buildStubs() && ctx.Arch().Native && !ctx.inRecovery() { if ctx.Device() && isBionic(ctx.baseModuleName()) { library.installSymlinkToRuntimeApex(ctx, file) } library.baseInstaller.subDir = "bootstrap" Loading cc/makevars.go +14 −1 Original line number Diff line number Diff line Loading @@ -96,7 +96,20 @@ func makeVarsProvider(ctx android.MakeVarsContext) { ctx.Strict("VNDK_CORE_LIBRARIES", strings.Join(*vndkCoreLibraries(ctx.Config()), " ")) ctx.Strict("VNDK_SAMEPROCESS_LIBRARIES", strings.Join(*vndkSpLibraries(ctx.Config()), " ")) ctx.Strict("LLNDK_LIBRARIES", strings.Join(*llndkLibraries(ctx.Config()), " ")) // Make uses LLNDK_LIBRARIES to determine which libraries to install. // HWASAN is only part of the LL-NDK in builds in which libc depends on HWASAN. // Therefore, by removing the library here, we cause it to only be installed if libc // depends on it. installedLlndkLibraries := []string{} for _, lib := range *llndkLibraries(ctx.Config()) { if strings.HasPrefix(lib, "libclang_rt.hwasan-") { continue } installedLlndkLibraries = append(installedLlndkLibraries, lib) } ctx.Strict("LLNDK_LIBRARIES", strings.Join(installedLlndkLibraries, " ")) ctx.Strict("VNDK_PRIVATE_LIBRARIES", strings.Join(*vndkPrivateLibraries(ctx.Config()), " ")) ctx.Strict("VNDK_USING_CORE_VARIANT_LIBRARIES", strings.Join(*vndkUsingCoreVariantLibraries(ctx.Config()), " ")) Loading Loading
apex/apex.go +11 −0 Original line number Diff line number Diff line Loading @@ -521,6 +521,17 @@ func (a *apexBundle) DepsMutator(ctx android.BottomUpMutatorContext) { a.properties.Multilib.Prefer32.Binaries, target.String(), a.getImageVariation(config)) } if strings.HasPrefix(ctx.ModuleName(), "com.android.runtime") && target.Os.Class == android.Device { for _, sanitizer := range ctx.Config().SanitizeDevice() { if sanitizer == "hwaddress" { addDependenciesForNativeModules(ctx, []string{"libclang_rt.hwasan-aarch64-android"}, nil, target.String(), a.getImageVariation(config)) break } } } } } Loading
cc/binary.go +2 −2 Original line number Diff line number Diff line Loading @@ -440,8 +440,8 @@ func (binary *binaryDecorator) install(ctx ModuleContext, file android.Path) { // Bionic binaries (e.g. linker) is installed to the bootstrap subdirectory. // The original path becomes a symlink to the corresponding file in the // runtime APEX. if isBionic(ctx.baseModuleName()) && ctx.Arch().Native && ctx.apexName() == "" && !ctx.inRecovery() { if ctx.Device() { if installToBootstrap(ctx.baseModuleName(), ctx.Config()) && ctx.Arch().Native && ctx.apexName() == "" && !ctx.inRecovery() { if ctx.Device() && isBionic(ctx.baseModuleName()) { binary.installSymlinkToRuntimeApex(ctx, file) } binary.baseInstaller.subDir = "bootstrap" Loading
cc/cc.go +10 −0 Original line number Diff line number Diff line Loading @@ -600,6 +600,9 @@ func (c *Module) HasStubsVariants() bool { if library, ok := c.linker.(*libraryDecorator); ok { return len(library.Properties.Stubs.Versions) > 0 } if library, ok := c.linker.(*prebuiltLibraryLinker); ok { return len(library.Properties.Stubs.Versions) > 0 } return false } Loading @@ -619,6 +622,13 @@ func isBionic(name string) bool { return false } func installToBootstrap(name string, config android.Config) bool { if name == "libclang_rt.hwasan-aarch64-android" { return inList("hwaddress", config.SanitizeDevice()) } return isBionic(name) } type baseModuleContext struct { android.BaseContext moduleContextImpl Loading
cc/library.go +3 −3 Original line number Diff line number Diff line Loading @@ -957,12 +957,12 @@ func (library *libraryDecorator) install(ctx ModuleContext, file android.Path) { library.baseInstaller.subDir += "-" + vndkVersion } } } else if len(library.Properties.Stubs.Versions) > 0 && android.DirectlyInAnyApex(ctx, ctx.ModuleName()) { } else if len(library.Properties.Stubs.Versions) > 0 { // Bionic libraries (e.g. libc.so) is installed to the bootstrap subdirectory. // The original path becomes a symlink to the corresponding file in the // runtime APEX. if isBionic(ctx.baseModuleName()) && !library.buildStubs() && ctx.Arch().Native && !ctx.inRecovery() { if ctx.Device() { if installToBootstrap(ctx.baseModuleName(), ctx.Config()) && !library.buildStubs() && ctx.Arch().Native && !ctx.inRecovery() { if ctx.Device() && isBionic(ctx.baseModuleName()) { library.installSymlinkToRuntimeApex(ctx, file) } library.baseInstaller.subDir = "bootstrap" Loading
cc/makevars.go +14 −1 Original line number Diff line number Diff line Loading @@ -96,7 +96,20 @@ func makeVarsProvider(ctx android.MakeVarsContext) { ctx.Strict("VNDK_CORE_LIBRARIES", strings.Join(*vndkCoreLibraries(ctx.Config()), " ")) ctx.Strict("VNDK_SAMEPROCESS_LIBRARIES", strings.Join(*vndkSpLibraries(ctx.Config()), " ")) ctx.Strict("LLNDK_LIBRARIES", strings.Join(*llndkLibraries(ctx.Config()), " ")) // Make uses LLNDK_LIBRARIES to determine which libraries to install. // HWASAN is only part of the LL-NDK in builds in which libc depends on HWASAN. // Therefore, by removing the library here, we cause it to only be installed if libc // depends on it. installedLlndkLibraries := []string{} for _, lib := range *llndkLibraries(ctx.Config()) { if strings.HasPrefix(lib, "libclang_rt.hwasan-") { continue } installedLlndkLibraries = append(installedLlndkLibraries, lib) } ctx.Strict("LLNDK_LIBRARIES", strings.Join(installedLlndkLibraries, " ")) ctx.Strict("VNDK_PRIVATE_LIBRARIES", strings.Join(*vndkPrivateLibraries(ctx.Config()), " ")) ctx.Strict("VNDK_USING_CORE_VARIANT_LIBRARIES", strings.Join(*vndkUsingCoreVariantLibraries(ctx.Config()), " ")) Loading