diff --git a/libcxx/test/tools/clang_tidy_checks/CMakeLists.txt b/libcxx/test/tools/clang_tidy_checks/CMakeLists.txt --- a/libcxx/test/tools/clang_tidy_checks/CMakeLists.txt +++ b/libcxx/test/tools/clang_tidy_checks/CMakeLists.txt @@ -1,17 +1,17 @@ -# Look for the latest package -set(CMAKE_FIND_PACKAGE_SORT_ORDER NATURAL) -set(CMAKE_FIND_PACKAGE_SORT_DIRECTION DEC) - # The find_package changes these variables. This leaves the build in an odd # state. Calling cmake a second time tries to write site config information in # the system's libc++. Restoring these setting after testing fixes this issue. set(LLVM_DIR_SAVE ${LLVM_DIR}) set(Clang_DIR_SAVE ${Clang_DIR}) -find_package(Clang 16) +# TODO LLVM 17 prefer to use teh stable release again instead of ToT. +# libc++ normally prefers the use the last stable release instead of the ToT. +# For modules we need ToT since they are still under heavy development. So +# temporary the ToT version is preferred. +find_package(Clang 17) if (NOT Clang_FOUND) - find_package(Clang 17) + find_package(Clang 16) endif() set(SOURCES 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 @@ -38,6 +38,10 @@ ): return None + # TODO MODULES require ToT due module specific fixes. + if runScriptExitCode(cfg, ['clang-tidy-17 --version']) == 0: + return 'clang-tidy-17' + # TODO This should be the last stable release. # LLVM RELEASE bump to latest stable version if runScriptExitCode(cfg, ["clang-tidy-16 --version"]) == 0: