[Openmp-commits] [llvm] [openmp] [offload][openmp] - Remove standalone build in favor of 'runtimes' (PR #170693)
Michael Kruse via Openmp-commits
openmp-commits at lists.llvm.org
Wed Jan 7 10:47:24 PST 2026
Meinersbur wrote:
> The only significant difference is that the first only requires the `openmp` directory while the other requires an LLVM checkout. I think it's reasonable to require an LLVM checkout for these always.
We have shared code [third-party/](https://github.com/llvm/llvm-project/tree/main/third-party) and [cmake/](https://github.com/llvm/llvm-project/tree/main/cmake). The former is used by openmp since #147381. The latter will be after #171515. While it is possible to make OpenMP work without support for those features, it adds complexity to the build.
> I recommend removing standalone build for `libomptarget`, and still keep `libomp` as it is. `libomp` doesn't depend on LLVM anyway, except those very limited feature(s) that are rarely used.
The primary motivation is reducing build complexity. We have 4 modes how to build OpenMP:
* `cmake <llvm-project>/llvm -DLLVM_ENABLE_PROJECTS=openmp` (#152189)
* `cmake <llvm-project>/llvm -DLLVM_ENABLE_RUNTIMES=openmp` (bootstrapping build)
* `cmake <llvm-project>/openmp` (standalone)
* `cmake <llvm-project>/runtimes -DLLVM_ENABLE_RUNTIMES=openmp` (runtimes defalt build)
We should not have to maintain build modes which are redundant, not tested with out CI infrastructures, different in subtle ways, constantly break when touch a `CMakeLists.txt` and thus must be tested manually. Few contributors do which means openmp is broken in most modes (such as observed in this very PR). See https://discourse.llvm.org/t/rfc-llvm-build-system-future-direction/53430 for a previous effort on reducing the combinatorial explosion of build configurations.
https://github.com/llvm/llvm-project/pull/170693
More information about the Openmp-commits
mailing list