# -*- Python -*-

import os

# Setup config name.
config.name = "ShadowCallStack"

# Setup source root.
config.test_source_root = os.path.dirname(__file__)

# Test suffixes.
config.suffixes = [".c", ".cpp", ".m", ".mm", ".ll", ".test"]

# Add clang substitutions.
config.substitutions.append(
    (
        "%clang_noscs ",
        config.clang
        + " -O0 -fno-sanitize=shadow-call-stack "
        + config.target_cflags
        + " ",
    )
)

scs_arch_cflags = config.target_cflags
if config.target_arch == "aarch64":
    scs_arch_cflags += " -ffixed-x18 "
config.substitutions.append(
    (
        "%clang_scs ",
        config.clang + " -O0 -fsanitize=shadow-call-stack " + scs_arch_cflags + " ",
    )
)

if config.target_os not in ["Linux"] or config.target_arch not in ["aarch64", "riscv64"]:
    config.unsupported = True
