diff --git a/libcxx/benchmarks/CMakeLists.txt b/libcxx/benchmarks/CMakeLists.txt --- a/libcxx/benchmarks/CMakeLists.txt +++ b/libcxx/benchmarks/CMakeLists.txt @@ -166,6 +166,11 @@ # Register Benchmark tests #============================================================================== file(GLOB BENCHMARK_TESTS "*.bench.cpp") + +if (NOT LIBCXX_ENABLE_INCOMPLETE_FEATURES) + list(FILTER BENCHMARK_TESTS EXCLUDE REGEX "(format_to_n|format_to|format|formatted_size|formatter_float|std_format_spec_string_unicode).bench.cpp") +endif() + foreach(test_path ${BENCHMARK_TESTS}) get_filename_component(test_file "${test_path}" NAME) string(REPLACE ".bench.cpp" "" test_name "${test_file}") diff --git a/libcxx/include/module.modulemap b/libcxx/include/module.modulemap --- a/libcxx/include/module.modulemap +++ b/libcxx/include/module.modulemap @@ -2,7 +2,8 @@ // since __config may be included from C headers which may create an // include cycle. module std_config [system] [extern_c] { - header "__config" + textual header "__config" + textual header "__config_site" } module std [system] { diff --git a/libcxx/utils/libcxx/test/features.py b/libcxx/utils/libcxx/test/features.py --- a/libcxx/utils/libcxx/test/features.py +++ b/libcxx/utils/libcxx/test/features.py @@ -129,22 +129,10 @@ '_LIBCPP_HAS_NO_UNICODE': 'libcpp-has-no-unicode', } for macro, feature in macros.items(): - DEFAULT_FEATURES += [ - Feature(name=lambda cfg, m=macro, f=feature: f + ( - '={}'.format(compilerMacros(cfg)[m]) if compilerMacros(cfg)[m] else '' - ), - when=lambda cfg, m=macro: m in compilerMacros(cfg), - - # FIXME: This is a hack that should be fixed using module maps. - # If modules are enabled then we have to lift all of the definitions - # in <__config_site> onto the command line. - actions=lambda cfg, m=macro: [ - AddCompileFlag('-Wno-macro-redefined -D{}'.format(m) + ( - '={}'.format(compilerMacros(cfg)[m]) if compilerMacros(cfg)[m] else '' - )) - ] - ) - ] + DEFAULT_FEATURES.append( + Feature(name=lambda cfg, m=macro, f=feature: f + ('={}'.format(compilerMacros(cfg)[m]) if compilerMacros(cfg)[m] else ''), + when=lambda cfg, m=macro: m in compilerMacros(cfg)) + ) # Mapping from canonical locale names (used in the tests) to possible locale