18007ff1aSReid Kleckner# -*- Python -*- 28007ff1aSReid Kleckner 38007ff1aSReid Klecknerimport os 48007ff1aSReid Kleckner 58007ff1aSReid Kleckner# Setup config name. 6*3a7c1870SRainer Orthconfig.name = "SafeStack-" + config.name_suffix 78007ff1aSReid Kleckner 88007ff1aSReid Kleckner# Setup source root. 98007ff1aSReid Klecknerconfig.test_source_root = os.path.dirname(__file__) 108007ff1aSReid Kleckner 118007ff1aSReid Kleckner# Test suffixes. 12f98ee40fSTobias Hietaconfig.suffixes = [".c", ".cpp", ".m", ".mm", ".ll", ".test"] 138007ff1aSReid Kleckner 148007ff1aSReid Kleckner# Add clang substitutions. 15f98ee40fSTobias Hietaconfig.substitutions.append( 16dfafe382SAlexander Richardson ( 17dfafe382SAlexander Richardson "%clang_nosafestack ", 18dfafe382SAlexander Richardson config.clang + config.target_cflags + " -O0 -fno-sanitize=safe-stack ", 19dfafe382SAlexander Richardson ) 20f98ee40fSTobias Hieta) 21f98ee40fSTobias Hietaconfig.substitutions.append( 22dfafe382SAlexander Richardson ( 23dfafe382SAlexander Richardson "%clang_safestack ", 24dfafe382SAlexander Richardson config.clang + config.target_cflags + " -O0 -fsanitize=safe-stack ", 25dfafe382SAlexander Richardson ) 26f98ee40fSTobias Hieta) 278007ff1aSReid Kleckner 288007ff1aSReid Klecknerif config.lto_supported: 29f98ee40fSTobias Hieta config.substitutions.append( 30f98ee40fSTobias Hieta ( 31f98ee40fSTobias Hieta r"%clang_lto_safestack ", 32f98ee40fSTobias Hieta " ".join([config.clang] + config.lto_flags + ["-fsanitize=safe-stack "]), 33f98ee40fSTobias Hieta ) 34f98ee40fSTobias Hieta ) 358007ff1aSReid Kleckner 36474d35f2SRainer Orthif config.host_os not in ["Linux", "FreeBSD", "NetBSD", "SunOS"]: 378007ff1aSReid Kleckner config.unsupported = True 38