aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorestewart08 <ethan.stewart@amd.com>2024-05-02 10:27:56 -0500
committerGitHub <noreply@github.com>2024-05-02 10:27:56 -0500
commitd824d879f46cef2fadde811413320f5ae46d0cb9 (patch)
tree3167ca27ec2426cf6371cd20b729f25283821397
parentcb5d6a5639ab17933f127456cee9167fb0ed6439 (diff)
downloadllvm-d824d879f46cef2fadde811413320f5ae46d0cb9.zip
llvm-d824d879f46cef2fadde811413320f5ae46d0cb9.tar.gz
llvm-d824d879f46cef2fadde811413320f5ae46d0cb9.tar.bz2
[offload] - Add omp as a dependency for clang-bootstrap-deps (#90793)
If openmp is on the LLVM_ENABLE_PROJECTS list and offload is on LLVM_ENABLE_RUNTIMES list when using CLANG_ENABLE_BOOTSTRAP, then the runtimes will be configured before the openmp project. This will throw a cannot find libomp.so dependency error. Add omp as a dependency when this is the case. Update offload cmake for detection of LIBOMP_HAVE_VERSION_SCRIPT.
-rw-r--r--llvm/runtimes/CMakeLists.txt7
-rw-r--r--offload/CMakeLists.txt13
2 files changed, 15 insertions, 5 deletions
diff --git a/llvm/runtimes/CMakeLists.txt b/llvm/runtimes/CMakeLists.txt
index 8159d7f..3020ba72 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 42e0f57..3f77583 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.