diff --git a/compiler-rt/test/asan/CMakeLists.txt b/compiler-rt/test/asan/CMakeLists.txt
--- a/compiler-rt/test/asan/CMakeLists.txt
+++ b/compiler-rt/test/asan/CMakeLists.txt
@@ -58,8 +58,8 @@
   string(TOUPPER ${arch} ARCH_UPPER_CASE)
   set(CONFIG_NAME ${ARCH_UPPER_CASE}${OS_NAME}Config)
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg
+    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py
     )
   list(APPEND ASAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
 
@@ -68,8 +68,8 @@
     set(ASAN_TEST_DYNAMIC True)
     set(CONFIG_NAME ${ARCH_UPPER_CASE}${OS_NAME}DynamicConfig)
     configure_lit_site_cfg(
-      ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-      ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg)
+      ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+      ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py)
     list(APPEND ASAN_DYNAMIC_TESTSUITES
       ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
   endif()
@@ -95,8 +95,8 @@
     string(TOUPPER ${arch} ARCH_UPPER_CASE)
     set(CONFIG_NAME "IOSSim${ARCH_UPPER_CASE}Config")
     configure_lit_site_cfg(
-      ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-      ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg
+      ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+      ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py
       )
     add_lit_testsuite(check-asan-iossim-${arch} "AddressSanitizer iOS Simulator ${arch} tests"
       ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/
@@ -112,8 +112,8 @@
     string(TOUPPER ${arch} ARCH_UPPER_CASE)
     set(CONFIG_NAME "IOS${ARCH_UPPER_CASE}Config")
     configure_lit_site_cfg(
-      ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-      ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg
+      ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+      ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py
       )
     add_lit_testsuite(check-asan-ios-${arch} "AddressSanitizer iOS ${arch} tests"
       ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/
@@ -127,13 +127,13 @@
 if(COMPILER_RT_INCLUDE_TESTS)
   set(ASAN_TEST_DYNAMIC False)
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg)
+    ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg.py)
   if(COMPILER_RT_ASAN_HAS_STATIC_RUNTIME)
     set(ASAN_TEST_DYNAMIC True)
     configure_lit_site_cfg(
-      ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
-      ${CMAKE_CURRENT_BINARY_DIR}/Unit/dynamic/lit.site.cfg)
+      ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
+      ${CMAKE_CURRENT_BINARY_DIR}/Unit/dynamic/lit.site.cfg.py)
   endif()
   # FIXME: support unit test in the android test runner
   if (NOT ANDROID)
diff --git a/compiler-rt/test/asan/TestCases/Android/lit.local.cfg b/compiler-rt/test/asan/TestCases/Android/lit.local.cfg.py
rename from compiler-rt/test/asan/TestCases/Android/lit.local.cfg
rename to compiler-rt/test/asan/TestCases/Android/lit.local.cfg.py
diff --git a/compiler-rt/test/asan/TestCases/Darwin/lit.local.cfg b/compiler-rt/test/asan/TestCases/Darwin/lit.local.cfg.py
rename from compiler-rt/test/asan/TestCases/Darwin/lit.local.cfg
rename to compiler-rt/test/asan/TestCases/Darwin/lit.local.cfg.py
diff --git a/compiler-rt/test/asan/TestCases/Helpers/lit.local.cfg b/compiler-rt/test/asan/TestCases/Helpers/lit.local.cfg.py
rename from compiler-rt/test/asan/TestCases/Helpers/lit.local.cfg
rename to compiler-rt/test/asan/TestCases/Helpers/lit.local.cfg.py
diff --git a/compiler-rt/test/asan/TestCases/Linux/lit.local.cfg b/compiler-rt/test/asan/TestCases/Linux/lit.local.cfg.py
rename from compiler-rt/test/asan/TestCases/Linux/lit.local.cfg
rename to compiler-rt/test/asan/TestCases/Linux/lit.local.cfg.py
diff --git a/compiler-rt/test/asan/TestCases/Posix/lit.local.cfg b/compiler-rt/test/asan/TestCases/Posix/lit.local.cfg.py
rename from compiler-rt/test/asan/TestCases/Posix/lit.local.cfg
rename to compiler-rt/test/asan/TestCases/Posix/lit.local.cfg.py
diff --git a/compiler-rt/test/asan/TestCases/Windows/lit.local.cfg b/compiler-rt/test/asan/TestCases/Windows/lit.local.cfg.py
rename from compiler-rt/test/asan/TestCases/Windows/lit.local.cfg
rename to compiler-rt/test/asan/TestCases/Windows/lit.local.cfg.py
diff --git a/compiler-rt/test/asan/Unit/lit.site.cfg.in b/compiler-rt/test/asan/Unit/lit.site.cfg.py.in
rename from compiler-rt/test/asan/Unit/lit.site.cfg.in
rename to compiler-rt/test/asan/Unit/lit.site.cfg.py.in
diff --git a/compiler-rt/test/asan/lit.cfg b/compiler-rt/test/asan/lit.cfg.py
rename from compiler-rt/test/asan/lit.cfg
rename to compiler-rt/test/asan/lit.cfg.py
--- a/compiler-rt/test/asan/lit.cfg
+++ b/compiler-rt/test/asan/lit.cfg.py
@@ -21,7 +21,7 @@
     lit_config.fatal(
       "No attribute %r in test configuration! You may need to run "
       "tests from your build directory or add this attribute "
-      "to lit.site.cfg " % attr_name)
+      "to lit.site.cfg.py " % attr_name)
   return attr_value
 
 def push_dynamic_library_lookup_path(config, new_path):
diff --git a/compiler-rt/test/asan/lit.site.cfg.in b/compiler-rt/test/asan/lit.site.cfg.py.in
rename from compiler-rt/test/asan/lit.site.cfg.in
rename to compiler-rt/test/asan/lit.site.cfg.py.in
--- a/compiler-rt/test/asan/lit.site.cfg.in
+++ b/compiler-rt/test/asan/lit.site.cfg.py.in
@@ -13,4 +13,4 @@
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
 
 # Load tool-specific config that would do the real work.
-lit_config.load_config(config, "@ASAN_LIT_SOURCE_DIR@/lit.cfg")
+lit_config.load_config(config, "@ASAN_LIT_SOURCE_DIR@/lit.cfg.py")
diff --git a/compiler-rt/test/builtins/CMakeLists.txt b/compiler-rt/test/builtins/CMakeLists.txt
--- a/compiler-rt/test/builtins/CMakeLists.txt
+++ b/compiler-rt/test/builtins/CMakeLists.txt
@@ -5,8 +5,8 @@
 
 # Test cases.
 configure_lit_site_cfg(
-  ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-  ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
+  ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+  ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py
 )
 
 #Unit tests.
@@ -44,8 +44,8 @@
   string(TOUPPER ${arch} ARCH_UPPER_CASE)
   set(CONFIG_NAME ${ARCH_UPPER_CASE}${OS_NAME}Config)
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/Unit/${CONFIG_NAME}/lit.site.cfg
+    ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/Unit/${CONFIG_NAME}/lit.site.cfg.py
     )
   list(APPEND BUILTINS_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit/${CONFIG_NAME})
 endforeach()
diff --git a/compiler-rt/test/builtins/TestCases/Darwin/lit.local.cfg b/compiler-rt/test/builtins/TestCases/Darwin/lit.local.cfg.py
rename from compiler-rt/test/builtins/TestCases/Darwin/lit.local.cfg
rename to compiler-rt/test/builtins/TestCases/Darwin/lit.local.cfg.py
diff --git a/compiler-rt/test/builtins/Unit/lit.cfg b/compiler-rt/test/builtins/Unit/lit.cfg.py
rename from compiler-rt/test/builtins/Unit/lit.cfg
rename to compiler-rt/test/builtins/Unit/lit.cfg.py
--- a/compiler-rt/test/builtins/Unit/lit.cfg
+++ b/compiler-rt/test/builtins/Unit/lit.cfg.py
@@ -11,7 +11,7 @@
     lit_config.fatal(
       "No attribute %r in test configuration! You may need to run "
       "tests from your build directory or add this attribute "
-      "to lit.site.cfg " % attr_name)
+      "to lit.site.cfg.py " % attr_name)
   return attr_value
 
 # Setup config name.
diff --git a/compiler-rt/test/builtins/Unit/lit.site.cfg.in b/compiler-rt/test/builtins/Unit/lit.site.cfg.py.in
rename from compiler-rt/test/builtins/Unit/lit.site.cfg.in
rename to compiler-rt/test/builtins/Unit/lit.site.cfg.py.in
--- a/compiler-rt/test/builtins/Unit/lit.site.cfg.in
+++ b/compiler-rt/test/builtins/Unit/lit.site.cfg.py.in
@@ -10,4 +10,4 @@
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
 
 # Load tool-specific config that would do the real work.
-lit_config.load_config(config, "@BUILTINS_LIT_SOURCE_DIR@/Unit/lit.cfg")
+lit_config.load_config(config, "@BUILTINS_LIT_SOURCE_DIR@/Unit/lit.cfg.py")
diff --git a/compiler-rt/test/builtins/lit.cfg b/compiler-rt/test/builtins/lit.cfg.py
rename from compiler-rt/test/builtins/lit.cfg
rename to compiler-rt/test/builtins/lit.cfg.py
diff --git a/compiler-rt/test/builtins/lit.site.cfg.in b/compiler-rt/test/builtins/lit.site.cfg.py.in
rename from compiler-rt/test/builtins/lit.site.cfg.in
rename to compiler-rt/test/builtins/lit.site.cfg.py.in
--- a/compiler-rt/test/builtins/lit.site.cfg.in
+++ b/compiler-rt/test/builtins/lit.site.cfg.py.in
@@ -4,4 +4,4 @@
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
 
 # Load tool-specific config that would do the real work.
-lit_config.load_config(config, "@BUILTINS_LIT_SOURCE_DIR@/lit.cfg")
+lit_config.load_config(config, "@BUILTINS_LIT_SOURCE_DIR@/lit.cfg.py")
diff --git a/compiler-rt/test/cfi/CMakeLists.txt b/compiler-rt/test/cfi/CMakeLists.txt
--- a/compiler-rt/test/cfi/CMakeLists.txt
+++ b/compiler-rt/test/cfi/CMakeLists.txt
@@ -20,16 +20,16 @@
   set(CFI_LIT_TEST_MODE Standalone)
   set(CFI_TEST_CONFIG_SUFFIX -standalone${suffix})
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/Standalone${suffix}/lit.site.cfg
+    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/Standalone${suffix}/lit.site.cfg.py
     )
   list(APPEND CFI_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Standalone${suffix})
 
   set(CFI_LIT_TEST_MODE Devirt)
   set(CFI_TEST_CONFIG_SUFFIX -devirt${suffix})
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/Devirt${suffix}/lit.site.cfg
+    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/Devirt${suffix}/lit.site.cfg.py
     )
   list(APPEND CFI_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Devirt${suffix})
 endmacro()
diff --git a/compiler-rt/test/cfi/cross-dso/icall/lit.local.cfg b/compiler-rt/test/cfi/cross-dso/icall/lit.local.cfg.py
rename from compiler-rt/test/cfi/cross-dso/icall/lit.local.cfg
rename to compiler-rt/test/cfi/cross-dso/icall/lit.local.cfg.py
diff --git a/compiler-rt/test/cfi/cross-dso/lit.local.cfg b/compiler-rt/test/cfi/cross-dso/lit.local.cfg.py
rename from compiler-rt/test/cfi/cross-dso/lit.local.cfg
rename to compiler-rt/test/cfi/cross-dso/lit.local.cfg.py
diff --git a/compiler-rt/test/cfi/icall/lit.local.cfg b/compiler-rt/test/cfi/icall/lit.local.cfg.py
rename from compiler-rt/test/cfi/icall/lit.local.cfg
rename to compiler-rt/test/cfi/icall/lit.local.cfg.py
diff --git a/compiler-rt/test/cfi/lit.cfg b/compiler-rt/test/cfi/lit.cfg.py
rename from compiler-rt/test/cfi/lit.cfg
rename to compiler-rt/test/cfi/lit.cfg.py
diff --git a/compiler-rt/test/cfi/lit.site.cfg.in b/compiler-rt/test/cfi/lit.site.cfg.py.in
rename from compiler-rt/test/cfi/lit.site.cfg.in
rename to compiler-rt/test/cfi/lit.site.cfg.py.in
--- a/compiler-rt/test/cfi/lit.site.cfg.in
+++ b/compiler-rt/test/cfi/lit.site.cfg.py.in
@@ -10,4 +10,4 @@
 config.use_newpm = @CFI_TEST_USE_NEWPM@
 
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
-lit_config.load_config(config, "@CMAKE_CURRENT_SOURCE_DIR@/lit.cfg")
+lit_config.load_config(config, "@CMAKE_CURRENT_SOURCE_DIR@/lit.cfg.py")
diff --git a/compiler-rt/test/crt/CMakeLists.txt b/compiler-rt/test/crt/CMakeLists.txt
--- a/compiler-rt/test/crt/CMakeLists.txt
+++ b/compiler-rt/test/crt/CMakeLists.txt
@@ -22,8 +22,8 @@
     set(CONFIG_NAME ${ARCH_UPPER_CASE}${OS_NAME}Config)
 
     configure_lit_site_cfg(
-      ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-      ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg)
+      ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+      ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py)
     list(APPEND CRT_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
   endforeach()
 endif()
diff --git a/compiler-rt/test/crt/lit.cfg b/compiler-rt/test/crt/lit.cfg.py
rename from compiler-rt/test/crt/lit.cfg
rename to compiler-rt/test/crt/lit.cfg.py
diff --git a/compiler-rt/test/crt/lit.site.cfg.in b/compiler-rt/test/crt/lit.site.cfg.py.in
rename from compiler-rt/test/crt/lit.site.cfg.in
rename to compiler-rt/test/crt/lit.site.cfg.py.in
--- a/compiler-rt/test/crt/lit.site.cfg.in
+++ b/compiler-rt/test/crt/lit.site.cfg.py.in
@@ -11,4 +11,4 @@
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
 
 # Load tool-specific config that would do the real work.
-lit_config.load_config(config, "@CRT_LIT_SOURCE_DIR@/lit.cfg")
+lit_config.load_config(config, "@CRT_LIT_SOURCE_DIR@/lit.cfg.py")
diff --git a/compiler-rt/test/dfsan/CMakeLists.txt b/compiler-rt/test/dfsan/CMakeLists.txt
--- a/compiler-rt/test/dfsan/CMakeLists.txt
+++ b/compiler-rt/test/dfsan/CMakeLists.txt
@@ -15,8 +15,8 @@
   set(CONFIG_NAME ${ARCH_UPPER_CASE}Config)
 
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg)
+    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py)
   list(APPEND DFSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
 endforeach()
 
diff --git a/compiler-rt/test/dfsan/lit.cfg b/compiler-rt/test/dfsan/lit.cfg.py
rename from compiler-rt/test/dfsan/lit.cfg
rename to compiler-rt/test/dfsan/lit.cfg.py
diff --git a/compiler-rt/test/dfsan/lit.site.cfg.in b/compiler-rt/test/dfsan/lit.site.cfg.py.in
rename from compiler-rt/test/dfsan/lit.site.cfg.in
rename to compiler-rt/test/dfsan/lit.site.cfg.py.in
--- a/compiler-rt/test/dfsan/lit.site.cfg.in
+++ b/compiler-rt/test/dfsan/lit.site.cfg.py.in
@@ -9,4 +9,4 @@
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
 
 # Load tool-specific config that would do the real work.
-lit_config.load_config(config, "@DFSAN_LIT_TESTS_DIR@/lit.cfg")
+lit_config.load_config(config, "@DFSAN_LIT_TESTS_DIR@/lit.cfg.py")
diff --git a/compiler-rt/test/fuzzer/CMakeLists.txt b/compiler-rt/test/fuzzer/CMakeLists.txt
--- a/compiler-rt/test/fuzzer/CMakeLists.txt
+++ b/compiler-rt/test/fuzzer/CMakeLists.txt
@@ -27,8 +27,8 @@
 if(COMPILER_RT_INCLUDE_TESTS)
   # libFuzzer unit tests.
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/unit/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/unit/lit.site.cfg)
+    ${CMAKE_CURRENT_SOURCE_DIR}/unit/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/unit/lit.site.cfg.py)
   add_lit_testsuite(check-fuzzer-unit "Running Fuzzer unit tests"
     ${CMAKE_CURRENT_BINARY_DIR}/unit
     DEPENDS ${LIBFUZZER_TEST_DEPS})
@@ -61,8 +61,8 @@
 
     # LIT-based libFuzzer tests.
     configure_lit_site_cfg(
-      ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-      ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg
+      ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+      ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py
       )
 
     add_lit_testsuite(check-fuzzer-${stdlib_name}-${arch}
@@ -99,8 +99,8 @@
     string(TOUPPER ${arch} ARCH_UPPER_CASE)
     set(CONFIG_NAME "IOS${ARCH_UPPER_CASE}Config")
     configure_lit_site_cfg(
-      ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-      ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg
+      ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+      ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py
       )
     add_lit_testsuite(check-fuzzer-ios-${arch} "libFuzzer iOS ${arch} tests"
       ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/
diff --git a/compiler-rt/test/fuzzer/lit.cfg b/compiler-rt/test/fuzzer/lit.cfg.py
rename from compiler-rt/test/fuzzer/lit.cfg
rename to compiler-rt/test/fuzzer/lit.cfg.py
diff --git a/compiler-rt/test/fuzzer/lit.site.cfg.in b/compiler-rt/test/fuzzer/lit.site.cfg.py.in
rename from compiler-rt/test/fuzzer/lit.site.cfg.in
rename to compiler-rt/test/fuzzer/lit.site.cfg.py.in
--- a/compiler-rt/test/fuzzer/lit.site.cfg.in
+++ b/compiler-rt/test/fuzzer/lit.site.cfg.py.in
@@ -22,4 +22,4 @@
 else:
   config.runtime_library_dir = "@LLVM_LIBRARY_DIR@"
 
-lit_config.load_config(config, "@CMAKE_CURRENT_SOURCE_DIR@/lit.cfg")
+lit_config.load_config(config, "@CMAKE_CURRENT_SOURCE_DIR@/lit.cfg.py")
diff --git a/compiler-rt/test/fuzzer/unit/lit.site.cfg.in b/compiler-rt/test/fuzzer/unit/lit.site.cfg.py.in
rename from compiler-rt/test/fuzzer/unit/lit.site.cfg.in
rename to compiler-rt/test/fuzzer/unit/lit.site.cfg.py.in
diff --git a/compiler-rt/test/gwp_asan/CMakeLists.txt b/compiler-rt/test/gwp_asan/CMakeLists.txt
--- a/compiler-rt/test/gwp_asan/CMakeLists.txt
+++ b/compiler-rt/test/gwp_asan/CMakeLists.txt
@@ -17,8 +17,8 @@
 if (COMPILER_RT_INCLUDE_TESTS AND COMPILER_RT_HAS_GWP_ASAN AND NOT ANDROID)
   list(APPEND GWP_ASAN_TEST_DEPS GwpAsanUnitTests)
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/unit/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/unit/lit.site.cfg)
+    ${CMAKE_CURRENT_SOURCE_DIR}/unit/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/unit/lit.site.cfg.py)
   add_lit_testsuite(check-gwp_asan-unit "Running GWP-ASan unit tests"
     ${CMAKE_CURRENT_BINARY_DIR}/unit
     DEPENDS ${GWP_ASAN_TEST_DEPS})
@@ -28,8 +28,8 @@
 endif()
 
 configure_lit_site_cfg(
-  ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-  ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
+  ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+  ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py
   )
 
 foreach(arch ${GWP_ASAN_SUPPORTED_ARCH})
@@ -40,8 +40,8 @@
   set(CONFIG_NAME ${ARCH_UPPER_CASE}${OS_NAME}Config)
 
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg)
+    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py)
   list(APPEND GWP_ASAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
 endforeach()
 
diff --git a/compiler-rt/test/gwp_asan/lit.cfg b/compiler-rt/test/gwp_asan/lit.cfg.py
rename from compiler-rt/test/gwp_asan/lit.cfg
rename to compiler-rt/test/gwp_asan/lit.cfg.py
diff --git a/compiler-rt/test/gwp_asan/lit.site.cfg.in b/compiler-rt/test/gwp_asan/lit.site.cfg.py.in
rename from compiler-rt/test/gwp_asan/lit.site.cfg.in
rename to compiler-rt/test/gwp_asan/lit.site.cfg.py.in
--- a/compiler-rt/test/gwp_asan/lit.site.cfg.in
+++ b/compiler-rt/test/gwp_asan/lit.site.cfg.py.in
@@ -8,4 +8,4 @@
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
 
 # Load tool-specific config that would do the real work.
-lit_config.load_config(config, "@GWP_ASAN_LIT_SOURCE_DIR@/lit.cfg")
+lit_config.load_config(config, "@GWP_ASAN_LIT_SOURCE_DIR@/lit.cfg.py")
diff --git a/compiler-rt/test/gwp_asan/unit/lit.site.cfg.in b/compiler-rt/test/gwp_asan/unit/lit.site.cfg.py.in
rename from compiler-rt/test/gwp_asan/unit/lit.site.cfg.in
rename to compiler-rt/test/gwp_asan/unit/lit.site.cfg.py.in
diff --git a/compiler-rt/test/hwasan/CMakeLists.txt b/compiler-rt/test/hwasan/CMakeLists.txt
--- a/compiler-rt/test/hwasan/CMakeLists.txt
+++ b/compiler-rt/test/hwasan/CMakeLists.txt
@@ -15,8 +15,8 @@
   set(HWASAN_ANDROID_FILES_TO_PUSH [])
 
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg)
+    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py)
   list(APPEND HWASAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
 endforeach()
 
diff --git a/compiler-rt/test/hwasan/TestCases/Linux/lit.local.cfg b/compiler-rt/test/hwasan/TestCases/Linux/lit.local.cfg.py
rename from compiler-rt/test/hwasan/TestCases/Linux/lit.local.cfg
rename to compiler-rt/test/hwasan/TestCases/Linux/lit.local.cfg.py
diff --git a/compiler-rt/test/hwasan/TestCases/Posix/lit.local.cfg b/compiler-rt/test/hwasan/TestCases/Posix/lit.local.cfg.py
rename from compiler-rt/test/hwasan/TestCases/Posix/lit.local.cfg
rename to compiler-rt/test/hwasan/TestCases/Posix/lit.local.cfg.py
diff --git a/compiler-rt/test/hwasan/lit.cfg b/compiler-rt/test/hwasan/lit.cfg.py
rename from compiler-rt/test/hwasan/lit.cfg
rename to compiler-rt/test/hwasan/lit.cfg.py
diff --git a/compiler-rt/test/hwasan/lit.site.cfg.in b/compiler-rt/test/hwasan/lit.site.cfg.py.in
rename from compiler-rt/test/hwasan/lit.site.cfg.in
rename to compiler-rt/test/hwasan/lit.site.cfg.py.in
--- a/compiler-rt/test/hwasan/lit.site.cfg.in
+++ b/compiler-rt/test/hwasan/lit.site.cfg.py.in
@@ -10,4 +10,4 @@
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
 
 # Load tool-specific config that would do the real work.
-lit_config.load_config(config, "@HWASAN_LIT_SOURCE_DIR@/lit.cfg")
+lit_config.load_config(config, "@HWASAN_LIT_SOURCE_DIR@/lit.cfg.py")
diff --git a/compiler-rt/test/interception/CMakeLists.txt b/compiler-rt/test/interception/CMakeLists.txt
--- a/compiler-rt/test/interception/CMakeLists.txt
+++ b/compiler-rt/test/interception/CMakeLists.txt
@@ -5,8 +5,8 @@
 # Android targets.
 if(COMPILER_RT_INCLUDE_TESTS AND NOT ANDROID AND NOT APPLE)
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg)
+    ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg.py)
   list(APPEND INTERCEPTION_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit)
   list(APPEND INTERCEPTION_TEST_DEPS InterceptionUnitTests)
 endif()
diff --git a/compiler-rt/test/interception/Unit/lit.site.cfg.in b/compiler-rt/test/interception/Unit/lit.site.cfg.py.in
rename from compiler-rt/test/interception/Unit/lit.site.cfg.in
rename to compiler-rt/test/interception/Unit/lit.site.cfg.py.in
diff --git a/compiler-rt/test/lit.common.cfg b/compiler-rt/test/lit.common.cfg.py
rename from compiler-rt/test/lit.common.cfg
rename to compiler-rt/test/lit.common.cfg.py
--- a/compiler-rt/test/lit.common.cfg
+++ b/compiler-rt/test/lit.common.cfg.py
@@ -2,7 +2,7 @@
 
 # Configuration file for 'lit' test runner.
 # This file contains common rules for various compiler-rt testsuites.
-# It is mostly copied from lit.cfg used by Clang.
+# It is mostly copied from lit.cfg.py used by Clang.
 import os
 import platform
 import re
diff --git a/compiler-rt/test/lit.common.configured.in b/compiler-rt/test/lit.common.configured.in
--- a/compiler-rt/test/lit.common.configured.in
+++ b/compiler-rt/test/lit.common.configured.in
@@ -66,4 +66,4 @@
   lit_config.fatal("Can't find compiler on path %r" % config.clang)
 
 # Setup attributes common for all compiler-rt projects.
-lit_config.load_config(config, "@COMPILER_RT_SOURCE_DIR@/test/lit.common.cfg")
+lit_config.load_config(config, "@COMPILER_RT_SOURCE_DIR@/test/lit.common.cfg.py")
diff --git a/compiler-rt/test/lsan/CMakeLists.txt b/compiler-rt/test/lsan/CMakeLists.txt
--- a/compiler-rt/test/lsan/CMakeLists.txt
+++ b/compiler-rt/test/lsan/CMakeLists.txt
@@ -16,16 +16,16 @@
   set(CONFIG_NAME ${ARCH_UPPER_CASE}LsanConfig)
 
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg)
+    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py)
   list(APPEND LSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
 
   set(CONFIG_NAME ${ARCH_UPPER_CASE}AsanConfig)
   set(LSAN_LIT_TEST_MODE "AddressSanitizer")
 
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg)
+    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py)
   list(APPEND LSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
 endforeach()
 
diff --git a/compiler-rt/test/lsan/TestCases/Darwin/lit.local.cfg b/compiler-rt/test/lsan/TestCases/Darwin/lit.local.cfg.py
rename from compiler-rt/test/lsan/TestCases/Darwin/lit.local.cfg
rename to compiler-rt/test/lsan/TestCases/Darwin/lit.local.cfg.py
diff --git a/compiler-rt/test/lsan/TestCases/Linux/lit.local.cfg b/compiler-rt/test/lsan/TestCases/Linux/lit.local.cfg.py
rename from compiler-rt/test/lsan/TestCases/Linux/lit.local.cfg
rename to compiler-rt/test/lsan/TestCases/Linux/lit.local.cfg.py
diff --git a/compiler-rt/test/lsan/TestCases/Posix/lit.local.cfg b/compiler-rt/test/lsan/TestCases/Posix/lit.local.cfg.py
rename from compiler-rt/test/lsan/TestCases/Posix/lit.local.cfg
rename to compiler-rt/test/lsan/TestCases/Posix/lit.local.cfg.py
diff --git a/compiler-rt/test/lsan/lit.common.cfg b/compiler-rt/test/lsan/lit.common.cfg.py
rename from compiler-rt/test/lsan/lit.common.cfg
rename to compiler-rt/test/lsan/lit.common.cfg.py
--- a/compiler-rt/test/lsan/lit.common.cfg
+++ b/compiler-rt/test/lsan/lit.common.cfg.py
@@ -13,7 +13,7 @@
     lit_config.fatal(
       "No attribute %r in test configuration! You may need to run "
       "tests from your build directory or add this attribute "
-      "to lit.site.cfg " % attr_name)
+      "to lit.site.cfg.py " % attr_name)
   return attr_value
 
 # Setup source root.
diff --git a/compiler-rt/test/lsan/lit.site.cfg.in b/compiler-rt/test/lsan/lit.site.cfg.py.in
rename from compiler-rt/test/lsan/lit.site.cfg.in
rename to compiler-rt/test/lsan/lit.site.cfg.py.in
--- a/compiler-rt/test/lsan/lit.site.cfg.in
+++ b/compiler-rt/test/lsan/lit.site.cfg.py.in
@@ -10,4 +10,4 @@
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
 
 # Load tool-specific config that would do the real work.
-lit_config.load_config(config, "@LSAN_LIT_SOURCE_DIR@/lit.common.cfg")
+lit_config.load_config(config, "@LSAN_LIT_SOURCE_DIR@/lit.common.cfg.py")
diff --git a/compiler-rt/test/msan/CMakeLists.txt b/compiler-rt/test/msan/CMakeLists.txt
--- a/compiler-rt/test/msan/CMakeLists.txt
+++ b/compiler-rt/test/msan/CMakeLists.txt
@@ -26,8 +26,8 @@
   set(MSAN_TEST_USE_LLD ${lld})
 
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg)
+    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py)
   list(APPEND MSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
 endmacro()
 
@@ -47,8 +47,8 @@
    COMPILER_RT_LIBCXX_PATH AND
    COMPILER_RT_LIBCXXABI_PATH)
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg)
+    ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg.py)
   list(APPEND MSAN_TEST_DEPS MsanUnitTests)
   list(APPEND MSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit)
 endif()
diff --git a/compiler-rt/test/msan/Linux/lit.local.cfg b/compiler-rt/test/msan/Linux/lit.local.cfg.py
rename from compiler-rt/test/msan/Linux/lit.local.cfg
rename to compiler-rt/test/msan/Linux/lit.local.cfg.py
diff --git a/compiler-rt/test/msan/Unit/lit.site.cfg.in b/compiler-rt/test/msan/Unit/lit.site.cfg.py.in
rename from compiler-rt/test/msan/Unit/lit.site.cfg.in
rename to compiler-rt/test/msan/Unit/lit.site.cfg.py.in
diff --git a/compiler-rt/test/msan/lit.cfg b/compiler-rt/test/msan/lit.cfg.py
rename from compiler-rt/test/msan/lit.cfg
rename to compiler-rt/test/msan/lit.cfg.py
diff --git a/compiler-rt/test/msan/lit.site.cfg.in b/compiler-rt/test/msan/lit.site.cfg.py.in
rename from compiler-rt/test/msan/lit.site.cfg.in
rename to compiler-rt/test/msan/lit.site.cfg.py.in
--- a/compiler-rt/test/msan/lit.site.cfg.in
+++ b/compiler-rt/test/msan/lit.site.cfg.py.in
@@ -11,4 +11,4 @@
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
 
 # Load tool-specific config that would do the real work.
-lit_config.load_config(config, "@MSAN_LIT_SOURCE_DIR@/lit.cfg")
+lit_config.load_config(config, "@MSAN_LIT_SOURCE_DIR@/lit.cfg.py")
diff --git a/compiler-rt/test/profile/CMakeLists.txt b/compiler-rt/test/profile/CMakeLists.txt
--- a/compiler-rt/test/profile/CMakeLists.txt
+++ b/compiler-rt/test/profile/CMakeLists.txt
@@ -17,8 +17,8 @@
   get_test_cc_for_arch(${arch} PROFILE_TEST_TARGET_CC PROFILE_TEST_TARGET_CFLAGS)
   set(CONFIG_NAME Profile-${arch})
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg
+    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py
    )
   list(APPEND PROFILE_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
 endforeach()
diff --git a/compiler-rt/test/profile/Linux/lit.local.cfg b/compiler-rt/test/profile/Linux/lit.local.cfg.py
rename from compiler-rt/test/profile/Linux/lit.local.cfg
rename to compiler-rt/test/profile/Linux/lit.local.cfg.py
diff --git a/compiler-rt/test/profile/Posix/lit.local.cfg b/compiler-rt/test/profile/Posix/lit.local.cfg.py
rename from compiler-rt/test/profile/Posix/lit.local.cfg
rename to compiler-rt/test/profile/Posix/lit.local.cfg.py
diff --git a/compiler-rt/test/profile/lit.cfg b/compiler-rt/test/profile/lit.cfg.py
rename from compiler-rt/test/profile/lit.cfg
rename to compiler-rt/test/profile/lit.cfg.py
--- a/compiler-rt/test/profile/lit.cfg
+++ b/compiler-rt/test/profile/lit.cfg.py
@@ -8,7 +8,7 @@
     lit_config.fatal(
       "No attribute %r in test configuration! You may need to run "
       "tests from your build directory or add this attribute "
-      "to lit.site.cfg " % attr_name)
+      "to lit.site.cfg.py " % attr_name)
   return attr_value
 
 # Setup config name.
diff --git a/compiler-rt/test/profile/lit.site.cfg.in b/compiler-rt/test/profile/lit.site.cfg.py.in
rename from compiler-rt/test/profile/lit.site.cfg.in
rename to compiler-rt/test/profile/lit.site.cfg.py.in
--- a/compiler-rt/test/profile/lit.site.cfg.in
+++ b/compiler-rt/test/profile/lit.site.cfg.py.in
@@ -9,4 +9,4 @@
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
 
 # Load tool-specific config that would do the real work.
-lit_config.load_config(config, "@PROFILE_LIT_SOURCE_DIR@/lit.cfg")
+lit_config.load_config(config, "@PROFILE_LIT_SOURCE_DIR@/lit.cfg.py")
diff --git a/compiler-rt/test/safestack/CMakeLists.txt b/compiler-rt/test/safestack/CMakeLists.txt
--- a/compiler-rt/test/safestack/CMakeLists.txt
+++ b/compiler-rt/test/safestack/CMakeLists.txt
@@ -21,8 +21,8 @@
 endif()
 
 configure_lit_site_cfg(
-  ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-  ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
+  ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+  ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py
   )
 
 add_lit_testsuite(check-safestack "Running the SafeStack tests"
diff --git a/compiler-rt/test/safestack/lit.cfg b/compiler-rt/test/safestack/lit.cfg.py
rename from compiler-rt/test/safestack/lit.cfg
rename to compiler-rt/test/safestack/lit.cfg.py
diff --git a/compiler-rt/test/safestack/lit.site.cfg.in b/compiler-rt/test/safestack/lit.site.cfg.py.in
rename from compiler-rt/test/safestack/lit.site.cfg.in
rename to compiler-rt/test/safestack/lit.site.cfg.py.in
--- a/compiler-rt/test/safestack/lit.site.cfg.in
+++ b/compiler-rt/test/safestack/lit.site.cfg.py.in
@@ -4,4 +4,4 @@
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
 
 # Load tool-specific config that would do the real work.
-lit_config.load_config(config, "@SAFESTACK_LIT_SOURCE_DIR@/lit.cfg")
+lit_config.load_config(config, "@SAFESTACK_LIT_SOURCE_DIR@/lit.cfg.py")
diff --git a/compiler-rt/test/sanitizer_common/CMakeLists.txt b/compiler-rt/test/sanitizer_common/CMakeLists.txt
--- a/compiler-rt/test/sanitizer_common/CMakeLists.txt
+++ b/compiler-rt/test/sanitizer_common/CMakeLists.txt
@@ -66,8 +66,8 @@
     get_test_cc_for_arch(${arch} SANITIZER_COMMON_TEST_TARGET_CC SANITIZER_COMMON_TEST_TARGET_CFLAGS)
     set(CONFIG_NAME ${tool}-${arch}-${OS_NAME})
     configure_lit_site_cfg(
-      ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-      ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg)
+      ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+      ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py)
     # FIXME(dliew): LSan i386 on Darwin is completly broken right now.
     # so don't run the tests by default.
     if (NOT (CMAKE_SYSTEM_NAME MATCHES "Darwin" AND
@@ -82,8 +82,8 @@
 # Unit tests.
 if(COMPILER_RT_INCLUDE_TESTS)
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg)
+    ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg.py)
   # FIXME: support unit test in the android test runner
   if (NOT ANDROID)
     list(APPEND SANITIZER_COMMON_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit)
diff --git a/compiler-rt/test/sanitizer_common/TestCases/Darwin/lit.local.cfg b/compiler-rt/test/sanitizer_common/TestCases/Darwin/lit.local.cfg.py
rename from compiler-rt/test/sanitizer_common/TestCases/Darwin/lit.local.cfg
rename to compiler-rt/test/sanitizer_common/TestCases/Darwin/lit.local.cfg.py
diff --git a/compiler-rt/test/sanitizer_common/TestCases/FreeBSD/lit.local.cfg b/compiler-rt/test/sanitizer_common/TestCases/FreeBSD/lit.local.cfg.py
rename from compiler-rt/test/sanitizer_common/TestCases/FreeBSD/lit.local.cfg
rename to compiler-rt/test/sanitizer_common/TestCases/FreeBSD/lit.local.cfg.py
diff --git a/compiler-rt/test/sanitizer_common/TestCases/Linux/lit.local.cfg b/compiler-rt/test/sanitizer_common/TestCases/Linux/lit.local.cfg.py
rename from compiler-rt/test/sanitizer_common/TestCases/Linux/lit.local.cfg
rename to compiler-rt/test/sanitizer_common/TestCases/Linux/lit.local.cfg.py
diff --git a/compiler-rt/test/sanitizer_common/TestCases/NetBSD/lit.local.cfg b/compiler-rt/test/sanitizer_common/TestCases/NetBSD/lit.local.cfg.py
rename from compiler-rt/test/sanitizer_common/TestCases/NetBSD/lit.local.cfg
rename to compiler-rt/test/sanitizer_common/TestCases/NetBSD/lit.local.cfg.py
diff --git a/compiler-rt/test/sanitizer_common/TestCases/Posix/lit.local.cfg b/compiler-rt/test/sanitizer_common/TestCases/Posix/lit.local.cfg.py
rename from compiler-rt/test/sanitizer_common/TestCases/Posix/lit.local.cfg
rename to compiler-rt/test/sanitizer_common/TestCases/Posix/lit.local.cfg.py
diff --git a/compiler-rt/test/sanitizer_common/Unit/lit.site.cfg.in b/compiler-rt/test/sanitizer_common/Unit/lit.site.cfg.py.in
rename from compiler-rt/test/sanitizer_common/Unit/lit.site.cfg.in
rename to compiler-rt/test/sanitizer_common/Unit/lit.site.cfg.py.in
diff --git a/compiler-rt/test/sanitizer_common/lit.common.cfg b/compiler-rt/test/sanitizer_common/lit.common.cfg.py
rename from compiler-rt/test/sanitizer_common/lit.common.cfg
rename to compiler-rt/test/sanitizer_common/lit.common.cfg.py
diff --git a/compiler-rt/test/sanitizer_common/lit.site.cfg.in b/compiler-rt/test/sanitizer_common/lit.site.cfg.py.in
rename from compiler-rt/test/sanitizer_common/lit.site.cfg.in
rename to compiler-rt/test/sanitizer_common/lit.site.cfg.py.in
--- a/compiler-rt/test/sanitizer_common/lit.site.cfg.in
+++ b/compiler-rt/test/sanitizer_common/lit.site.cfg.py.in
@@ -10,5 +10,5 @@
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
 
 # Load tool-specific config that would do the real work.
-lit_config.load_config(config, "@SANITIZER_COMMON_LIT_SOURCE_DIR@/lit.common.cfg")
+lit_config.load_config(config, "@SANITIZER_COMMON_LIT_SOURCE_DIR@/lit.common.cfg.py")
 
diff --git a/compiler-rt/test/scudo/CMakeLists.txt b/compiler-rt/test/scudo/CMakeLists.txt
--- a/compiler-rt/test/scudo/CMakeLists.txt
+++ b/compiler-rt/test/scudo/CMakeLists.txt
@@ -9,8 +9,8 @@
 endif()
 
 configure_lit_site_cfg(
-  ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-  ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
+  ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+  ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py
   )
 
 set(SCUDO_TEST_ARCH ${SCUDO_SUPPORTED_ARCH})
@@ -22,8 +22,8 @@
   set(CONFIG_NAME ${ARCH_UPPER_CASE}${OS_NAME}Config)
 
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg)
+    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py)
   list(APPEND SCUDO_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
 endforeach()
 
diff --git a/compiler-rt/test/scudo/lit.cfg b/compiler-rt/test/scudo/lit.cfg.py
rename from compiler-rt/test/scudo/lit.cfg
rename to compiler-rt/test/scudo/lit.cfg.py
diff --git a/compiler-rt/test/scudo/lit.site.cfg.in b/compiler-rt/test/scudo/lit.site.cfg.py.in
rename from compiler-rt/test/scudo/lit.site.cfg.in
rename to compiler-rt/test/scudo/lit.site.cfg.py.in
--- a/compiler-rt/test/scudo/lit.site.cfg.in
+++ b/compiler-rt/test/scudo/lit.site.cfg.py.in
@@ -8,4 +8,4 @@
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
 
 # Load tool-specific config that would do the real work.
-lit_config.load_config(config, "@SCUDO_LIT_SOURCE_DIR@/lit.cfg")
+lit_config.load_config(config, "@SCUDO_LIT_SOURCE_DIR@/lit.cfg.py")
diff --git a/compiler-rt/test/scudo/standalone/CMakeLists.txt b/compiler-rt/test/scudo/standalone/CMakeLists.txt
--- a/compiler-rt/test/scudo/standalone/CMakeLists.txt
+++ b/compiler-rt/test/scudo/standalone/CMakeLists.txt
@@ -1,7 +1,7 @@
 if(COMPILER_RT_INCLUDE_TESTS AND COMPILER_RT_HAS_SCUDO_STANDALONE)
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/unit/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/unit/lit.site.cfg)
+    ${CMAKE_CURRENT_SOURCE_DIR}/unit/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/unit/lit.site.cfg.py)
   list(APPEND SCUDO_STANDALONE_TEST_DEPS ScudoUnitTests)
   list(APPEND SCUDO_STANDALONE_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/unit)
 endif()
diff --git a/compiler-rt/test/scudo/standalone/unit/lit.site.cfg.in b/compiler-rt/test/scudo/standalone/unit/lit.site.cfg.py.in
rename from compiler-rt/test/scudo/standalone/unit/lit.site.cfg.in
rename to compiler-rt/test/scudo/standalone/unit/lit.site.cfg.py.in
diff --git a/compiler-rt/test/shadowcallstack/CMakeLists.txt b/compiler-rt/test/shadowcallstack/CMakeLists.txt
--- a/compiler-rt/test/shadowcallstack/CMakeLists.txt
+++ b/compiler-rt/test/shadowcallstack/CMakeLists.txt
@@ -10,8 +10,8 @@
   get_test_cc_for_arch(${arch}
     SHADOWSTACK_TEST_TARGET_CC SHADOWSTACK_TEST_TARGET_CFLAGS)
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/${arch}/lit.site.cfg)
+    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/${arch}/lit.site.cfg.py)
   list(APPEND SHADOWCALLSTACK_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${arch})
 endforeach()
 
diff --git a/compiler-rt/test/shadowcallstack/lit.cfg b/compiler-rt/test/shadowcallstack/lit.cfg.py
rename from compiler-rt/test/shadowcallstack/lit.cfg
rename to compiler-rt/test/shadowcallstack/lit.cfg.py
diff --git a/compiler-rt/test/shadowcallstack/lit.site.cfg.in b/compiler-rt/test/shadowcallstack/lit.site.cfg.py.in
rename from compiler-rt/test/shadowcallstack/lit.site.cfg.in
rename to compiler-rt/test/shadowcallstack/lit.site.cfg.py.in
--- a/compiler-rt/test/shadowcallstack/lit.site.cfg.in
+++ b/compiler-rt/test/shadowcallstack/lit.site.cfg.py.in
@@ -9,4 +9,4 @@
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
 
 # Load tool-specific config that would do the real work.
-lit_config.load_config(config, "@SHADOWCALLSTACK_LIT_SOURCE_DIR@/lit.cfg")
+lit_config.load_config(config, "@SHADOWCALLSTACK_LIT_SOURCE_DIR@/lit.cfg.py")
diff --git a/compiler-rt/test/tsan/CMakeLists.txt b/compiler-rt/test/tsan/CMakeLists.txt
--- a/compiler-rt/test/tsan/CMakeLists.txt
+++ b/compiler-rt/test/tsan/CMakeLists.txt
@@ -38,8 +38,8 @@
   set(CONFIG_NAME ${ARCH_UPPER_CASE}Config)
 
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg)
+    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py)
   list(APPEND TSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
 endforeach()
 
@@ -61,8 +61,8 @@
   string(TOUPPER ${arch} ARCH_UPPER_CASE)
   set(CONFIG_NAME "IOSSim${ARCH_UPPER_CASE}Config")
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg
+    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py
     )
   add_lit_testsuite(check-tsan-iossim-${arch} "ThreadSanitizer iOS Simulator ${arch} tests"
     ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/
@@ -76,8 +76,8 @@
   string(TOUPPER ${arch} ARCH_UPPER_CASE)
   set(CONFIG_NAME "IOS${ARCH_UPPER_CASE}Config")
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg
+    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py
     )
   add_lit_testsuite(check-tsan-ios-${arch} "ThreadSanitizer iOS Simulator ${arch} tests"
     ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/
@@ -88,8 +88,8 @@
 
 if(COMPILER_RT_INCLUDE_TESTS)
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg)
+    ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg.py)
   list(APPEND TSAN_TEST_DEPS TsanUnitTests)
   list(APPEND TSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit)
 endif()
diff --git a/compiler-rt/test/tsan/Darwin/lit.local.cfg b/compiler-rt/test/tsan/Darwin/lit.local.cfg.py
rename from compiler-rt/test/tsan/Darwin/lit.local.cfg
rename to compiler-rt/test/tsan/Darwin/lit.local.cfg.py
diff --git a/compiler-rt/test/tsan/Linux/lit.local.cfg b/compiler-rt/test/tsan/Linux/lit.local.cfg.py
rename from compiler-rt/test/tsan/Linux/lit.local.cfg
rename to compiler-rt/test/tsan/Linux/lit.local.cfg.py
diff --git a/compiler-rt/test/tsan/Unit/lit.site.cfg.in b/compiler-rt/test/tsan/Unit/lit.site.cfg.py.in
rename from compiler-rt/test/tsan/Unit/lit.site.cfg.in
rename to compiler-rt/test/tsan/Unit/lit.site.cfg.py.in
--- a/compiler-rt/test/tsan/Unit/lit.site.cfg.in
+++ b/compiler-rt/test/tsan/Unit/lit.site.cfg.py.in
@@ -16,7 +16,7 @@
   config.parallelism_group = config.darwin_sanitizer_parallelism_group_func
 
   # On Darwin, we default to ignore_noninstrumented_modules=1, which also
-  # suppresses some races the tests are supposed to find.  See tsan/lit.cfg.
+  # suppresses some races the tests are supposed to find.  See tsan/lit.cfg.py.
   if 'TSAN_OPTIONS' in config.environment:
     config.environment['TSAN_OPTIONS'] += ':ignore_noninstrumented_modules=0'
   else:
diff --git a/compiler-rt/test/tsan/libcxx/lit.local.cfg b/compiler-rt/test/tsan/libcxx/lit.local.cfg.py
rename from compiler-rt/test/tsan/libcxx/lit.local.cfg
rename to compiler-rt/test/tsan/libcxx/lit.local.cfg.py
diff --git a/compiler-rt/test/tsan/libdispatch/lit.local.cfg b/compiler-rt/test/tsan/libdispatch/lit.local.cfg.py
rename from compiler-rt/test/tsan/libdispatch/lit.local.cfg
rename to compiler-rt/test/tsan/libdispatch/lit.local.cfg.py
diff --git a/compiler-rt/test/tsan/lit.cfg b/compiler-rt/test/tsan/lit.cfg.py
rename from compiler-rt/test/tsan/lit.cfg
rename to compiler-rt/test/tsan/lit.cfg.py
--- a/compiler-rt/test/tsan/lit.cfg
+++ b/compiler-rt/test/tsan/lit.cfg.py
@@ -8,7 +8,7 @@
     lit_config.fatal(
       "No attribute %r in test configuration! You may need to run "
       "tests from your build directory or add this attribute "
-      "to lit.site.cfg " % attr_name)
+      "to lit.site.cfg.py " % attr_name)
   return attr_value
 
 # Setup config name.
@@ -26,7 +26,7 @@
   default_tsan_opts += ':abort_on_error=0'
   # On Darwin, we default to ignore_noninstrumented_modules=1, which also
   # suppresses some races the tests are supposed to find. Let's run without this
-  # setting, but turn it back on for Darwin tests (see Darwin/lit.local.cfg).
+  # setting, but turn it back on for Darwin tests (see Darwin/lit.local.cfg.py).
   default_tsan_opts += ':ignore_noninstrumented_modules=0'
 
 # Platform-specific default TSAN_OPTIONS for lit tests.
diff --git a/compiler-rt/test/tsan/lit.site.cfg.in b/compiler-rt/test/tsan/lit.site.cfg.py.in
rename from compiler-rt/test/tsan/lit.site.cfg.in
rename to compiler-rt/test/tsan/lit.site.cfg.py.in
--- a/compiler-rt/test/tsan/lit.site.cfg.in
+++ b/compiler-rt/test/tsan/lit.site.cfg.py.in
@@ -11,4 +11,4 @@
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
 
 # Load tool-specific config that would do the real work.
-lit_config.load_config(config, "@CMAKE_CURRENT_SOURCE_DIR@/lit.cfg")
+lit_config.load_config(config, "@CMAKE_CURRENT_SOURCE_DIR@/lit.cfg.py")
diff --git a/compiler-rt/test/ubsan/CMakeLists.txt b/compiler-rt/test/ubsan/CMakeLists.txt
--- a/compiler-rt/test/ubsan/CMakeLists.txt
+++ b/compiler-rt/test/ubsan/CMakeLists.txt
@@ -18,8 +18,8 @@
   set(UBSAN_TEST_USE_THINLTO ${thinlto})
   set(CONFIG_NAME ${CONFIG_NAME}-${arch})
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg)
+    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py)
   list(APPEND UBSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
   if(NOT COMPILER_RT_STANDALONE_BUILD)
     list(APPEND UBSAN_TEST_DEPS ${sanitizer})
@@ -75,8 +75,8 @@
     unset(UBSAN_TEST_APPLE_PLATFORM)
   endif()
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg)
+    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py)
   #list(APPEND UBSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
   if(NOT COMPILER_RT_STANDALONE_BUILD)
     list(APPEND UBSAN_TEST_DEPS ${sanitizer})
diff --git a/compiler-rt/test/ubsan/TestCases/Misc/Linux/lit.local.cfg b/compiler-rt/test/ubsan/TestCases/Misc/Linux/lit.local.cfg.py
rename from compiler-rt/test/ubsan/TestCases/Misc/Linux/lit.local.cfg
rename to compiler-rt/test/ubsan/TestCases/Misc/Linux/lit.local.cfg.py
diff --git a/compiler-rt/test/ubsan/TestCases/TypeCheck/Function/lit.local.cfg b/compiler-rt/test/ubsan/TestCases/TypeCheck/Function/lit.local.cfg.py
rename from compiler-rt/test/ubsan/TestCases/TypeCheck/Function/lit.local.cfg
rename to compiler-rt/test/ubsan/TestCases/TypeCheck/Function/lit.local.cfg.py
diff --git a/compiler-rt/test/ubsan/TestCases/TypeCheck/Linux/lit.local.cfg b/compiler-rt/test/ubsan/TestCases/TypeCheck/Linux/lit.local.cfg.py
rename from compiler-rt/test/ubsan/TestCases/TypeCheck/Linux/lit.local.cfg
rename to compiler-rt/test/ubsan/TestCases/TypeCheck/Linux/lit.local.cfg.py
diff --git a/compiler-rt/test/ubsan/lit.common.cfg b/compiler-rt/test/ubsan/lit.common.cfg.py
rename from compiler-rt/test/ubsan/lit.common.cfg
rename to compiler-rt/test/ubsan/lit.common.cfg.py
--- a/compiler-rt/test/ubsan/lit.common.cfg
+++ b/compiler-rt/test/ubsan/lit.common.cfg.py
@@ -8,7 +8,7 @@
     lit_config.fatal(
       "No attribute %r in test configuration! You may need to run "
       "tests from your build directory or add this attribute "
-      "to lit.site.cfg " % attr_name)
+      "to lit.site.cfg.py " % attr_name)
   return attr_value
 
 # Setup config name.
diff --git a/compiler-rt/test/ubsan/lit.site.cfg.in b/compiler-rt/test/ubsan/lit.site.cfg.py.in
rename from compiler-rt/test/ubsan/lit.site.cfg.in
rename to compiler-rt/test/ubsan/lit.site.cfg.py.in
--- a/compiler-rt/test/ubsan/lit.site.cfg.in
+++ b/compiler-rt/test/ubsan/lit.site.cfg.py.in
@@ -13,4 +13,4 @@
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
 
 # Load tool-specific config that would do the real work.
-lit_config.load_config(config, "@UBSAN_LIT_TESTS_DIR@/lit.common.cfg")
+lit_config.load_config(config, "@UBSAN_LIT_TESTS_DIR@/lit.common.cfg.py")
diff --git a/compiler-rt/test/ubsan_minimal/CMakeLists.txt b/compiler-rt/test/ubsan_minimal/CMakeLists.txt
--- a/compiler-rt/test/ubsan_minimal/CMakeLists.txt
+++ b/compiler-rt/test/ubsan_minimal/CMakeLists.txt
@@ -18,8 +18,8 @@
   get_test_cc_for_arch(${arch} UBSAN_TEST_TARGET_CC UBSAN_TEST_TARGET_CFLAGS)
   set(CONFIG_NAME ${arch})
   configure_lit_site_cfg(
-    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg)
+    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py)
   list(APPEND UBSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
 endforeach()
 
diff --git a/compiler-rt/test/ubsan_minimal/lit.common.cfg b/compiler-rt/test/ubsan_minimal/lit.common.cfg.py
rename from compiler-rt/test/ubsan_minimal/lit.common.cfg
rename to compiler-rt/test/ubsan_minimal/lit.common.cfg.py
--- a/compiler-rt/test/ubsan_minimal/lit.common.cfg
+++ b/compiler-rt/test/ubsan_minimal/lit.common.cfg.py
@@ -8,7 +8,7 @@
     lit_config.fatal(
       "No attribute %r in test configuration! You may need to run "
       "tests from your build directory or add this attribute "
-      "to lit.site.cfg " % attr_name)
+      "to lit.site.cfg.py " % attr_name)
   return attr_value
 
 # Setup source root.
diff --git a/compiler-rt/test/ubsan_minimal/lit.site.cfg.in b/compiler-rt/test/ubsan_minimal/lit.site.cfg.py.in
rename from compiler-rt/test/ubsan_minimal/lit.site.cfg.in
rename to compiler-rt/test/ubsan_minimal/lit.site.cfg.py.in
--- a/compiler-rt/test/ubsan_minimal/lit.site.cfg.in
+++ b/compiler-rt/test/ubsan_minimal/lit.site.cfg.py.in
@@ -8,4 +8,4 @@
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
 
 # Load tool-specific config that would do the real work.
-lit_config.load_config(config, "@UBSAN_LIT_TESTS_DIR@/lit.common.cfg")
+lit_config.load_config(config, "@UBSAN_LIT_TESTS_DIR@/lit.common.cfg.py")
diff --git a/compiler-rt/test/xray/CMakeLists.txt b/compiler-rt/test/xray/CMakeLists.txt
--- a/compiler-rt/test/xray/CMakeLists.txt
+++ b/compiler-rt/test/xray/CMakeLists.txt
@@ -21,8 +21,8 @@
     set(CONFIG_NAME ${ARCH_UPPER_CASE}${OS_NAME}Config)
 
     configure_lit_site_cfg(
-      ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-      ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg)
+      ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
+      ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py)
     list(APPEND XRAY_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
   endforeach()
 
@@ -30,8 +30,8 @@
   if(COMPILER_RT_INCLUDE_TESTS)
     if(UNIX AND NOT APPLE)
       configure_lit_site_cfg(
-        ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
-        ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg)
+        ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
+        ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg.py)
       list(APPEND XRAY_TEST_DEPS XRayUnitTests)
       list(APPEND XRAY_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit)
     endif()
diff --git a/compiler-rt/test/xray/Unit/lit.site.cfg.in b/compiler-rt/test/xray/Unit/lit.site.cfg.py.in
rename from compiler-rt/test/xray/Unit/lit.site.cfg.in
rename to compiler-rt/test/xray/Unit/lit.site.cfg.py.in
diff --git a/compiler-rt/test/xray/lit.cfg b/compiler-rt/test/xray/lit.cfg.py
rename from compiler-rt/test/xray/lit.cfg
rename to compiler-rt/test/xray/lit.cfg.py
diff --git a/compiler-rt/test/xray/lit.site.cfg.in b/compiler-rt/test/xray/lit.site.cfg.py.in
rename from compiler-rt/test/xray/lit.site.cfg.in
rename to compiler-rt/test/xray/lit.site.cfg.py.in
--- a/compiler-rt/test/xray/lit.site.cfg.in
+++ b/compiler-rt/test/xray/lit.site.cfg.py.in
@@ -17,4 +17,4 @@
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
 
 # Load tool-specific config that would do the real work.
-lit_config.load_config(config, "@CMAKE_CURRENT_SOURCE_DIR@/lit.cfg")
+lit_config.load_config(config, "@CMAKE_CURRENT_SOURCE_DIR@/lit.cfg.py")
diff --git a/compiler-rt/unittests/lit.common.unit.cfg b/compiler-rt/unittests/lit.common.unit.cfg.py
rename from compiler-rt/unittests/lit.common.unit.cfg
rename to compiler-rt/unittests/lit.common.unit.cfg.py
diff --git a/compiler-rt/unittests/lit.common.unit.configured.in b/compiler-rt/unittests/lit.common.unit.configured.in
--- a/compiler-rt/unittests/lit.common.unit.configured.in
+++ b/compiler-rt/unittests/lit.common.unit.configured.in
@@ -23,4 +23,4 @@
   lit_config.fatal("unable to find %r parameter, use '--param=%s=VALUE'" % (key, key))
 
 # Setup attributes common for all compiler-rt unit tests.
-lit_config.load_config(config, "@COMPILER_RT_SOURCE_DIR@/unittests/lit.common.unit.cfg")
+lit_config.load_config(config, "@COMPILER_RT_SOURCE_DIR@/unittests/lit.common.unit.cfg.py")
diff --git a/compiler-rt/unittests/lit_unittest_cfg_utils.py b/compiler-rt/unittests/lit_unittest_cfg_utils.py
--- a/compiler-rt/unittests/lit_unittest_cfg_utils.py
+++ b/compiler-rt/unittests/lit_unittest_cfg_utils.py
@@ -1,4 +1,4 @@
 # Put all 64-bit tests in the shadow-memory parallelism group. We throttle those
-# in our common lit config (lit.common.unit.cfg).
+# in our common lit config (lit.common.unit.cfg.py).
 def darwin_sanitizer_parallelism_group_func(test):
   return "shadow-memory" if "x86_64" in test.file_path else None