diff --git a/test/Analysis/crash-trace.c b/test/Analysis/crash-trace.c
index 8b61b75..3d677e8 100644
--- a/test/Analysis/crash-trace.c
+++ b/test/Analysis/crash-trace.c
@@ -4,6 +4,9 @@
 // FIXME: CHECKs might be incompatible to win32.
 // REQUIRES: shell
 
+// Stack traces also require back traces.
+// REQUIRES: backtrace
+
 void clang_analyzer_crash(void);
 
 void inlined() {
diff --git a/test/Parser/crash-report.c b/test/Parser/crash-report.c
index 92bc9ba..3fa8bfe 100644
--- a/test/Parser/crash-report.c
+++ b/test/Parser/crash-report.c
@@ -4,6 +4,9 @@
 // FIXME: CHECKs might be incompatible to win32.
 // REQUIRES: shell
 
+// Stack traces also require back traces.
+// REQUIRES: backtrace
+
 #prag\
 ma clang __debug crash
 
diff --git a/test/lit.cfg b/test/lit.cfg
index 4200a4a..51e1e4f 100644
--- a/test/lit.cfg
+++ b/test/lit.cfg
@@ -464,6 +464,9 @@ if config.llvm_use_sanitizer == "Undefined":
 else:
     config.available_features.add("not_ubsan")
 
+if config.enable_backtrace == "1":
+    config.available_features.add("backtrace")
+
 # Check if we should run long running tests.
 if lit_config.params.get("run_long_tests", None) == "true":
     config.available_features.add("long_tests")
diff --git a/test/lit.site.cfg.in b/test/lit.site.cfg.in
index 1f0b960..332bcec 100644
--- a/test/lit.site.cfg.in
+++ b/test/lit.site.cfg.in
@@ -18,6 +18,7 @@ config.clang_arcmt = @ENABLE_CLANG_ARCMT@
 config.clang_staticanalyzer = @ENABLE_CLANG_STATIC_ANALYZER@
 config.clang_examples = @ENABLE_CLANG_EXAMPLES@
 config.enable_shared = @ENABLE_SHARED@
+config.enable_backtrace = "@ENABLE_BACKTRACES@"
 config.host_arch = "@HOST_ARCH@"
 
 # Support substitution of the tools and libs dirs with user parameters. This is
