rust: Support global sanitizers

This CL adds Rust support for the SANITIZE_TARGET options.

This CL includes a couple small fixes to related to HWASAN, ASAN,
ensuring that the Never sanitize property is respected. Notably,
additional llvm-args are passed to ensure that HWASAN-ified Rust/C
interop works correctly.

Bug: 170672854
Bug: 204915322
Test: SANITIZE_TARGET globally applies hwasan to Rust targets
Change-Id: Ia904d07b4618f72cdc95c51f88961905c240ac53
This commit is contained in:
Ivan Lozano
2021-11-01 10:13:25 -04:00
parent a3bd963988
commit 5482d6a991
4 changed files with 93 additions and 21 deletions

View File

@@ -151,7 +151,12 @@ func GatherRequiredDepsForTest() string {
no_libcrt: true,
nocrt: true,
system_shared_libs: [],
export_include_dirs: ["libprotobuf-cpp-full-includes"],
}
cc_library {
name: "libclang_rt.hwasan_static-aarch64-android",
no_libcrt: true,
nocrt: true,
system_shared_libs: [],
}
rust_library {
name: "libstd",
@@ -246,5 +251,8 @@ func registerRequiredBuildComponentsForTest(ctx android.RegistrationContext) {
ctx.BottomUp("rust_begin", BeginMutator).Parallel()
})
ctx.RegisterSingletonType("rust_project_generator", rustProjectGeneratorSingleton)
ctx.PostDepsMutators(func(ctx android.RegisterMutatorsContext) {
ctx.BottomUp("rust_sanitizers", rustSanitizerRuntimeMutator).Parallel()
})
registerRustSnapshotModules(ctx)
}