Merge "Allow SCS for riscv64 too."

This commit is contained in:
Elliott Hughes 2023-03-21 22:10:56 +00:00 committed by Gerrit Code Review
commit c214e1ab8a
2 changed files with 7 additions and 3 deletions

View file

@ -26,12 +26,16 @@ var (
// Help catch common 32/64-bit errors.
"-Werror=implicit-function-declaration",
"-fno-emulated-tls",
// For -fsanitize=shadow-call-stack.
"-ffixed-x18",
}
riscv64ArchVariantCflags = map[string][]string{}
riscv64Ldflags = []string{
"-Wl,--hash-style=gnu",
// For -fsanitize=shadow-call-stack.
"-ffixed-x18",
}
riscv64Lldflags = append(riscv64Ldflags,

View file

@ -254,7 +254,7 @@ type SanitizeUserProps struct {
// This should not be used in Android 11+ : https://source.android.com/devices/tech/debug/scudo
// deprecated
Scudo *bool `android:"arch_variant"`
// shadow-call-stack sanitizer, only available on arm64
// shadow-call-stack sanitizer, only available on arm64/riscv64.
Scs *bool `android:"arch_variant"`
// Memory-tagging, only available on arm64
// if diag.memtag unset or false, enables async memory tagging
@ -593,8 +593,8 @@ func (sanitize *sanitize) begin(ctx BaseModuleContext) {
s.Hwaddress = nil
}
// SCS is only implemented on AArch64.
if ctx.Arch().ArchType != android.Arm64 || !ctx.toolchain().Bionic() {
// SCS is only implemented on AArch64/riscv64.
if (ctx.Arch().ArchType != android.Arm64 && ctx.Arch().ArchType != android.Riscv64) || !ctx.toolchain().Bionic() {
s.Scs = nil
}