diff --git a/llvm/runtimes/CMakeLists.txt b/llvm/runtimes/CMakeLists.txt index 8159d7f8a0a10..3020ba72f4a60 100644 --- a/llvm/runtimes/CMakeLists.txt +++ b/llvm/runtimes/CMakeLists.txt @@ -559,6 +559,13 @@ if(runtimes) # We need to add the runtimes as a dependency because compiler-rt can be # built as part of runtimes and we need the profile runtime for PGO add_dependencies(clang-bootstrap-deps runtimes) + # The bootstrap build will attempt to configure the offload runtime + # before the openmp project which will error out due to failing to + # find libomp.so. We must add omp as a dependency before runtimes + # are configured. + if("openmp" IN_LIST LLVM_ENABLE_PROJECTS AND "offload" IN_LIST LLVM_ENABLE_RUNTIMES) + add_dependencies(clang-bootstrap-deps omp) + endif() endif() if(LLVM_INCLUDE_TESTS) diff --git a/offload/CMakeLists.txt b/offload/CMakeLists.txt index 42e0f5740f116..3f77583ffa3b8 100644 --- a/offload/CMakeLists.txt +++ b/offload/CMakeLists.txt @@ -267,11 +267,6 @@ if(OPENMP_STANDALONE_BUILD) ${LLVM_LIBRARY_DIRS} REQUIRED ) -# Check LIBOMP_HAVE_VERSION_SCRIPT_FLAG - include(LLVMCheckCompilerLinkerFlag) - if(NOT APPLE) - llvm_check_compiler_linker_flag(C "-Wl,--version-script=${CMAKE_CURRENT_LIST_DIR}/../openmp/runtime/src/exports_test_so.txt" LIBOMP_HAVE_VERSION_SCRIPT_FLAG) - endif() macro(pythonize_bool var) if (${var}) @@ -282,6 +277,14 @@ if(OPENMP_STANDALONE_BUILD) endmacro() endif() +if(OPENMP_STANDALONE_BUILD OR TARGET omp) + # Check LIBOMP_HAVE_VERSION_SCRIPT_FLAG + include(LLVMCheckCompilerLinkerFlag) + if(NOT APPLE) + llvm_check_compiler_linker_flag(C "-Wl,--version-script=${CMAKE_CURRENT_LIST_DIR}/../openmp/runtime/src/exports_test_so.txt" LIBOMP_HAVE_VERSION_SCRIPT_FLAG) + endif() +endif() + # OMPT support for libomptarget # Follow host OMPT support and check if host support has been requested. # LIBOMP_HAVE_OMPT_SUPPORT indicates whether host OMPT support has been implemented.