[TySan] TySan support for SystemZ - Re-submission of original pr#162396 (#169850)

This is a re-submission of original reverted patch [(#162396)
](https://github.com/llvm/llvm-project/pull/162396url)for adding TySan
support for systemzZ along with build failure patch
[#169746](https://github.com/llvm/llvm-project/pull/169746).

See conversations in #169746.

Co-authored-by: anoopkg6 <anoopkg6@github.com>
This commit is contained in:
anoopkg6
2025-12-01 10:52:24 -06:00
committed by GitHub
parent fddf7b0510
commit 40aa91f12a
3 changed files with 9 additions and 2 deletions

View File

@@ -922,7 +922,7 @@ SanitizerMask Linux::getSupportedSanitizers() const {
if (IsX86_64 || IsMIPS64 || IsAArch64 || IsPowerPC64 || IsSystemZ ||
IsLoongArch64 || IsRISCV64)
Res |= SanitizerKind::Thread;
if (IsX86_64 || IsAArch64)
if (IsX86_64 || IsAArch64 || IsSystemZ)
Res |= SanitizerKind::Type;
if (IsX86_64 || IsSystemZ || IsPowerPC64)
Res |= SanitizerKind::KernelMemory;

View File

@@ -89,7 +89,7 @@ else()
set(ALL_TSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64} ${PPC64} ${S390X}
${LOONGARCH64} ${RISCV64})
endif()
set(ALL_TYSAN_SUPPORTED_ARCH ${X86_64} ${ARM64})
set(ALL_TYSAN_SUPPORTED_ARCH ${X86_64} ${ARM64} ${S390X})
set(ALL_UBSAN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${RISCV64}
${MIPS32} ${MIPS64} ${PPC64} ${S390X} ${SPARC} ${SPARCV9} ${HEXAGON}
${LOONGARCH64})

View File

@@ -45,6 +45,13 @@ struct Mapping48 {
static const uptr kPtrShift = 3;
};
#define TYSAN_RUNTIME_VMA 1
#elif defined(__s390x__)
struct Mapping {
static const uptr kShadowAddr = 0x080000000000ULL;
static const uptr kAppAddr = 0x460000000000ULL;
static const uptr kAppMemMsk = ~0xC00000000000ULL;
static const uptr kPtrShift = 3;
};
#else
#error "TySan not supported for this platform!"
#endif