Skip to content

Commit 58a2304

Browse files
committed
[libc++] Serialize Lit parameters to make them available to from-scratch configs
Before this patch, Lit parameters that were set as a result of CMake options were not made available to from-scratch configs. This patch serializes those parameters into the generated lit config file so that they are available to all configs. Differential Revision: https://reviews.llvm.org/D105047
1 parent 7756216 commit 58a2304

File tree

9 files changed

+76
-28
lines changed

9 files changed

+76
-28
lines changed

libcxx/test/CMakeLists.txt

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,6 @@ if(LIBCXX_INCLUDE_TESTS AND NOT LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXX AND NOT LIB
5555
message(FATAL_ERROR "LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXX being OFF requires LIBCXX_ENABLE_STATIC to be ON")
5656
endif()
5757

58-
pythonize_bool(LIBCXX_ENABLE_EXCEPTIONS)
59-
pythonize_bool(LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY)
60-
pythonize_bool(LIBCXX_ENABLE_RTTI)
6158
pythonize_bool(LIBCXX_ENABLE_SHARED)
6259
pythonize_bool(LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXX)
6360
pythonize_bool(LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI)
@@ -71,7 +68,6 @@ pythonize_bool(LIBCXX_HAS_ATOMIC_LIB)
7168
pythonize_bool(LIBCXX_HAVE_CXX_ATOMICS_WITH_LIB)
7269
pythonize_bool(LIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY)
7370
pythonize_bool(LIBCXX_DEBUG_BUILD)
74-
pythonize_bool(LIBCXX_ENABLE_DEBUG_MODE_SUPPORT)
7571
pythonize_bool(LIBCXX_ENABLE_PARALLEL_ALGORITHMS)
7672

7773
# By default, for non-standalone builds, libcxx and libcxxabi share a library
@@ -87,6 +83,35 @@ set(LIBCXX_EXECUTOR "\\\"${Python3_EXECUTABLE}\\\" ${CMAKE_CURRENT_LIST_DIR}/../
8783
"Executor to use when running tests.")
8884

8985
set(AUTO_GEN_COMMENT "## Autogenerated by libcxx configuration.\n# Do not edit!")
86+
set(SERIALIZED_LIT_PARAMS "# Lit parameters serialized here for llvm-lit to pick them up\n")
87+
88+
macro(serialize_lit_param param value)
89+
string(APPEND SERIALIZED_LIT_PARAMS "config.${param} = ${value}\n")
90+
endmacro()
91+
92+
if (NOT LIBCXX_ENABLE_EXCEPTIONS)
93+
serialize_lit_param(enable_exceptions False)
94+
endif()
95+
96+
if (NOT LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY)
97+
serialize_lit_param(enable_experimental False)
98+
endif()
99+
100+
if (NOT LIBCXX_ENABLE_RTTI)
101+
serialize_lit_param(enable_rtti False)
102+
endif()
103+
104+
if (NOT LIBCXX_ENABLE_DEBUG_MODE_SUPPORT)
105+
serialize_lit_param(enable_debug_tests False)
106+
endif()
107+
108+
if (TARGET_TRIPLE)
109+
serialize_lit_param(target_triple "\"${TARGET_TRIPLE}\"")
110+
endif()
111+
112+
if (LLVM_USE_SANITIZER)
113+
serialize_lit_param(use_sanitizer "\"${LLVM_USE_SANITIZER}\"")
114+
endif()
90115

91116
if (NOT DEFINED LIBCXX_TEST_DEPS)
92117
message(FATAL_ERROR "Expected LIBCXX_TEST_DEPS to be defined")

libcxx/test/configs/legacy.cfg.in

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
@AUTO_GEN_COMMENT@
22

3+
@SERIALIZED_LIT_PARAMS@
4+
35
import os
46
import site
57

@@ -10,18 +12,11 @@ config.libcxx_src_root = "@LIBCXX_SOURCE_DIR@"
1012
config.libcxx_obj_root = "@LIBCXX_BINARY_DIR@"
1113
config.cxx_library_root = "@LIBCXX_LIBRARY_DIR@"
1214
config.abi_library_root = "@LIBCXX_CXX_ABI_LIBRARY_PATH@"
13-
config.enable_exceptions = @LIBCXX_ENABLE_EXCEPTIONS@
14-
config.enable_debug_tests = @LIBCXX_ENABLE_DEBUG_MODE_SUPPORT@
15-
config.enable_experimental = @LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY@
16-
config.enable_rtti = @LIBCXX_ENABLE_RTTI@
1715
config.enable_shared = @LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXX@
1816
config.enable_32bit = @LIBCXX_BUILD_32_BITS@
1917
config.cxx_abi = "@LIBCXX_CXX_ABI_LIBNAME@"
20-
config.use_sanitizer = "@LLVM_USE_SANITIZER@"
2118
config.configuration_variant = "@LIBCXX_LIT_VARIANT@"
2219
config.host_triple = "@LLVM_HOST_TRIPLE@"
23-
if "@TARGET_TRIPLE@":
24-
config.target_triple = "@TARGET_TRIPLE@"
2520
config.sysroot = "@LIBCXX_SYSROOT@"
2621
config.gcc_toolchain = "@LIBCXX_GCC_TOOLCHAIN@"
2722
config.generate_coverage = @LIBCXX_GENERATE_COVERAGE@

libcxx/test/configs/libcxx-trunk-shared.cfg.in

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
@AUTO_GEN_COMMENT@
22

3+
@SERIALIZED_LIT_PARAMS@
4+
35
LIBCXX_ROOT = "@LIBCXX_SOURCE_DIR@"
46
INSTALL_ROOT = "@CMAKE_BINARY_DIR@"
57
COMPILER = "@CMAKE_CXX_COMPILER@"
68
EXEC_ROOT = "@LIBCXX_BINARY_DIR@"
79
CMAKE_OSX_SYSROOT = "@CMAKE_OSX_SYSROOT@"
8-
TARGET_TRIPLE = "@TARGET_TRIPLE@"
910

1011
import os
1112
import pipes
@@ -23,8 +24,6 @@ config.test_source_root = os.path.join(LIBCXX_ROOT, 'test')
2324
config.test_format = libcxx.test.format.CxxStandardLibraryTest()
2425
config.recursiveExpansionLimit = 10
2526
config.test_exec_root = EXEC_ROOT
26-
if TARGET_TRIPLE:
27-
config.target_triple = TARGET_TRIPLE
2827

2928
# Configure basic substitutions
3029
runPy = os.path.join(LIBCXX_ROOT, 'utils', 'run.py')

libcxx/test/configs/libcxx-trunk-static.cfg.in

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
@AUTO_GEN_COMMENT@
22

3+
@SERIALIZED_LIT_PARAMS@
4+
35
LIBCXX_ROOT = "@LIBCXX_SOURCE_DIR@"
46
INSTALL_ROOT = "@CMAKE_BINARY_DIR@"
57
COMPILER = "@CMAKE_CXX_COMPILER@"
68
EXEC_ROOT = "@LIBCXX_BINARY_DIR@"
79
CMAKE_OSX_SYSROOT = "@CMAKE_OSX_SYSROOT@"
8-
TARGET_TRIPLE = "@TARGET_TRIPLE@"
910

1011
import os
1112
import pipes
@@ -23,8 +24,6 @@ config.test_source_root = os.path.join(LIBCXX_ROOT, 'test')
2324
config.test_format = libcxx.test.format.CxxStandardLibraryTest()
2425
config.recursiveExpansionLimit = 10
2526
config.test_exec_root = EXEC_ROOT
26-
if TARGET_TRIPLE:
27-
config.target_triple = TARGET_TRIPLE
2827

2928
# Configure basic substitutions
3029
runPy = os.path.join(LIBCXX_ROOT, 'utils', 'run.py')

libcxxabi/test/CMakeLists.txt

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ pythonize_bool(LIBCXXABI_BUILD_32_BITS)
4141
pythonize_bool(LIBCXX_ENABLE_SHARED)
4242
pythonize_bool(LIBCXXABI_ENABLE_SHARED)
4343
pythonize_bool(LIBCXXABI_ENABLE_THREADS)
44-
pythonize_bool(LIBCXXABI_ENABLE_EXCEPTIONS)
4544
pythonize_bool(LIBCXXABI_USE_LLVM_UNWINDER)
4645
pythonize_bool(LIBCXXABI_USE_COMPILER_RT)
4746
pythonize_bool(LIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY)
@@ -71,6 +70,26 @@ if (NOT LIBCXXABI_STANDALONE_BUILD)
7170
endif()
7271

7372
set(AUTO_GEN_COMMENT "## Autogenerated by libcxxabi configuration.\n# Do not edit!")
73+
set(SERIALIZED_LIT_PARAMS "# Lit parameters serialized here for llvm-lit to pick them up\n")
74+
75+
macro(serialize_lit_param param value)
76+
string(APPEND SERIALIZED_LIT_PARAMS "config.${param} = ${value}\n")
77+
endmacro()
78+
79+
if (NOT LIBCXXABI_ENABLE_EXCEPTIONS)
80+
serialize_lit_param(enable_exceptions False)
81+
endif()
82+
83+
serialize_lit_param(enable_experimental False)
84+
85+
if (LLVM_USE_SANITIZER)
86+
serialize_lit_param(use_sanitizer "\"${LLVM_USE_SANITIZER}\"")
87+
endif()
88+
89+
if (TARGET_TRIPLE)
90+
serialize_lit_param(target_triple "\"${TARGET_TRIPLE}\"")
91+
endif()
92+
7493
configure_lit_site_cfg(
7594
"${LIBCXXABI_TEST_CONFIG}"
7695
${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg

libcxxabi/test/lit.site.cfg.in

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
@AUTO_GEN_COMMENT@
22

3+
@SERIALIZED_LIT_PARAMS@
4+
35
import os
46
import site
57

@@ -16,20 +18,15 @@ config.cxx_library_root = "@LIBCXXABI_LIBCXX_LIBRARY_PATH@"
1618
config.llvm_unwinder = @LIBCXXABI_USE_LLVM_UNWINDER@
1719
config.builtins_library = "@LIBCXXABI_BUILTINS_LIBRARY@"
1820
config.enable_threads = @LIBCXXABI_ENABLE_THREADS@
19-
config.use_sanitizer = "@LLVM_USE_SANITIZER@"
2021
config.enable_32bit = @LIBCXXABI_BUILD_32_BITS@
2122
config.target_info = "@LIBCXXABI_TARGET_INFO@"
2223
config.executor = "@LIBCXXABI_EXECUTOR@"
2324
config.libcxxabi_shared = @LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXXABI@
2425
config.enable_shared = @LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXX@
25-
config.enable_exceptions = @LIBCXXABI_ENABLE_EXCEPTIONS@
2626
config.host_triple = "@LLVM_HOST_TRIPLE@"
27-
if "@TARGET_TRIPLE@":
28-
config.target_triple = "@TARGET_TRIPLE@"
2927
config.sysroot = "@LIBCXXABI_SYSROOT@"
3028
config.gcc_toolchain = "@LIBCXXABI_GCC_TOOLCHAIN@"
3129
config.cxx_ext_threads = @LIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY@
32-
config.enable_experimental = False
3330

3431
config.pstl_src_root = "@ParallelSTL_SOURCE_DIR@" if @LIBCXX_ENABLE_PARALLEL_ALGORITHMS@ else None
3532
config.pstl_obj_root = "@ParallelSTL_BINARY_DIR@" if @LIBCXX_ENABLE_PARALLEL_ALGORITHMS@ else None

libunwind/test/CMakeLists.txt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,22 @@ set(LIBUNWIND_EXECUTOR "${Python3_EXECUTABLE} ${LIBUNWIND_LIBCXX_PATH}/utils/run
2424
"Executor to use when running tests.")
2525

2626
set(AUTO_GEN_COMMENT "## Autogenerated by libunwind configuration.\n# Do not edit!")
27+
set(SERIALIZED_LIT_PARAMS "# Lit parameters serialized here for llvm-lit to pick them up\n")
28+
29+
macro(serialize_lit_param param value)
30+
string(APPEND SERIALIZED_LIT_PARAMS "config.${param} = ${value}\n")
31+
endmacro()
32+
33+
serialize_lit_param(enable_experimental False)
34+
35+
if (LLVM_USE_SANITIZER)
36+
serialize_lit_param(use_sanitizer "\"${LLVM_USE_SANITIZER}\"")
37+
endif()
38+
39+
if (TARGET_TRIPLE)
40+
serialize_lit_param(target_triple "\"${TARGET_TRIPLE}\"")
41+
endif()
42+
2743
configure_lit_site_cfg(
2844
"${LIBUNWIND_TEST_CONFIG}"
2945
${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg

libunwind/test/libunwind/test/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def configure_compile_flags(self):
4545
self.cxx.compile_flags += ['-funwind-tables']
4646
# Make symbols available in the tests.
4747
triple = self.get_lit_conf('target_triple', None)
48-
if 'linux' in triple:
48+
if triple is not None and 'linux' in triple:
4949
self.cxx.link_flags += ['-Wl,--export-dynamic']
5050
if not self.get_lit_bool('enable_threads', True):
5151
self.cxx.compile_flags += ['-D_LIBUNWIND_HAS_NO_THREADS']

libunwind/test/lit.site.cfg.in

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
@AUTO_GEN_COMMENT@
22

3+
@SERIALIZED_LIT_PARAMS@
4+
35
import os
46
import site
57

@@ -14,7 +16,6 @@ config.cxx_library_root = "@LIBUNWIND_LIBCXX_LIBRARY_PATH@"
1416
config.llvm_unwinder = True
1517
config.builtins_library = "@LIBUNWIND_BUILTINS_LIBRARY@"
1618
config.enable_threads = @LIBUNWIND_ENABLE_THREADS@
17-
config.use_sanitizer = "@LLVM_USE_SANITIZER@"
1819
config.enable_32bit = @LIBUNWIND_BUILD_32_BITS@
1920
config.target_info = "@LIBUNWIND_TARGET_INFO@"
2021
config.test_linker_flags = "@LIBUNWIND_TEST_LINKER_FLAGS@"
@@ -24,12 +25,9 @@ config.libunwind_shared = @LIBUNWIND_ENABLE_SHARED@
2425
config.enable_shared = @LIBCXX_ENABLE_SHARED@
2526
config.arm_ehabi = @LIBUNWIND_USES_ARM_EHABI@
2627
config.host_triple = "@LLVM_HOST_TRIPLE@"
27-
if "@TARGET_TRIPLE@":
28-
config.target_triple = "@TARGET_TRIPLE@"
2928
config.sysroot = "@LIBUNWIND_SYSROOT@"
3029
config.gcc_toolchain = "@LIBUNWIND_GCC_TOOLCHAIN@"
3130
config.cxx_ext_threads = @LIBUNWIND_BUILD_EXTERNAL_THREAD_LIBRARY@
32-
config.enable_experimental = False
3331

3432
site.addsitedir(os.path.join(config.libunwind_src_root, 'test'))
3533
site.addsitedir(os.path.join(config.libcxx_src_root, 'utils'))

0 commit comments

Comments
 (0)