-
Type: Task
-
Resolution: Gone away
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Server Programmability
The mongo tidy checks are currently compiled against the LLVM version that happens to be used in the toolchain. It is not necessary that the checks agree with the compiler version to function; disagreement in the LLVM version may mean that the checks are more or less sophisticated than the compiler, but they will still operate. Forcing the checks to use the LLVM version that the compiler is on imposes difficulties when upgrading the compilers because the LLVM API is allowed to change from version to version in backwards- and forwards-incompatible ways. We should be able to bump the compiler version without necessitating sweeping refactoring among the mongo tidy checks to accommodate any API changes.
One way we could solve this is by vendoring the LLVM API as a third-party library under src/third_party and having the tidy checks compile against that vendored API. That way, upgrading the LLVM API and the tidy checks can be done completely independently of the toolchain or any other dependency.
An acceptable fallback solution to that more comprehensive one would be to adapt the SConscript/BUILD.bazel files that build the mongo tidy checks to support referencing a configurable toolchain, rather than always the current one. That way, when the toolchain upgrades, the tidy checks can be held back on the previous toolchain until it's convenient to upgrade them.
- is related to
-
SERVER-96684 Update mongo tidy checks to support LLVM 19 API
- Needs Scheduling
- related to
-
SERVER-97633 Allow search paths in mongo_toolchain_flags.bzl to be dynamically configured
- Closed