xref: /llvm-project/compiler-rt/test/shadowcallstack/lit.cfg.py (revision f98ee40f4b5d7474fc67e82824bf6abbaedb7b1c)
18007ff1aSReid Kleckner# -*- Python -*-
28007ff1aSReid Kleckner
38007ff1aSReid Klecknerimport os
48007ff1aSReid Kleckner
58007ff1aSReid Kleckner# Setup config name.
6*f98ee40fSTobias Hietaconfig.name = "ShadowCallStack"
78007ff1aSReid Kleckner
88007ff1aSReid Kleckner# Setup source root.
98007ff1aSReid Klecknerconfig.test_source_root = os.path.dirname(__file__)
108007ff1aSReid Kleckner
118007ff1aSReid Kleckner# Test suffixes.
12*f98ee40fSTobias Hietaconfig.suffixes = [".c", ".cpp", ".m", ".mm", ".ll", ".test"]
138007ff1aSReid Kleckner
148007ff1aSReid Kleckner# Add clang substitutions.
15*f98ee40fSTobias Hietaconfig.substitutions.append(
16*f98ee40fSTobias Hieta    (
17*f98ee40fSTobias Hieta        "%clang_noscs ",
18*f98ee40fSTobias Hieta        config.clang
19*f98ee40fSTobias Hieta        + " -O0 -fno-sanitize=shadow-call-stack "
20*f98ee40fSTobias Hieta        + config.target_cflags
21*f98ee40fSTobias Hieta        + " ",
22*f98ee40fSTobias Hieta    )
23*f98ee40fSTobias Hieta)
248007ff1aSReid Kleckner
258007ff1aSReid Klecknerscs_arch_cflags = config.target_cflags
26*f98ee40fSTobias Hietaif config.target_arch == "aarch64":
27*f98ee40fSTobias Hieta    scs_arch_cflags += " -ffixed-x18 "
28*f98ee40fSTobias Hietaconfig.substitutions.append(
29*f98ee40fSTobias Hieta    (
30*f98ee40fSTobias Hieta        "%clang_scs ",
31*f98ee40fSTobias Hieta        config.clang + " -O0 -fsanitize=shadow-call-stack " + scs_arch_cflags + " ",
32*f98ee40fSTobias Hieta    )
33*f98ee40fSTobias Hieta)
348007ff1aSReid Kleckner
35*f98ee40fSTobias Hietaif config.host_os not in ["Linux"] or config.target_arch not in ["aarch64", "riscv64"]:
368007ff1aSReid Kleckner    config.unsupported = True
37