summaryrefslogtreecommitdiff
path: root/openmp
diff options
context:
space:
mode:
authorShilei Tian <i@tianshilei.me>2023-05-06 23:26:43 -0400
committerShilei Tian <i@tianshilei.me>2023-05-06 23:26:51 -0400
commite87e4cfc12884479ff402e0689f374f155a41abf (patch)
tree5d082c748eaf6edc7acdbadb435f41338a720418 /openmp
parent67a98528d371fdd4caa0754e9b959c0e1df97bf8 (diff)
downloadllvm-e87e4cfc12884479ff402e0689f374f155a41abf.tar.gz
[OpenMP] Make `libomptarget` link against `libomp`
In `libomptarget` we use a couple of functions from `libomp`, but we didn't link `libomptarget` against `libomp`. That will not work on some platforms such as macOS. A linker error will be encountered because those symbols are not resolved at link time when building `libomptarget`. This patch simply makes `libomptarget` link agains `libomp`, makes it a "user" of `libomp`. I think this will not break the policies between `libomp` and `libomptarget`. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D149617
Diffstat (limited to 'openmp')
-rw-r--r--openmp/libomptarget/src/CMakeLists.txt4
-rw-r--r--openmp/runtime/src/CMakeLists.txt11
2 files changed, 13 insertions, 2 deletions
diff --git a/openmp/libomptarget/src/CMakeLists.txt b/openmp/libomptarget/src/CMakeLists.txt
index 425121c9ef10..bf6c23bd5eb5 100644
--- a/openmp/libomptarget/src/CMakeLists.txt
+++ b/openmp/libomptarget/src/CMakeLists.txt
@@ -31,6 +31,10 @@ add_llvm_library(omptarget
Support
Object
+ LINK_LIBS
+ PUBLIC
+ omp
+
NO_INSTALL_RPATH
)
target_include_directories(omptarget PRIVATE ${LIBOMPTARGET_INCLUDE_DIR})
diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
index 73ba1525c3d5..13aa1fa8d515 100644
--- a/openmp/runtime/src/CMakeLists.txt
+++ b/openmp/runtime/src/CMakeLists.txt
@@ -354,11 +354,18 @@ if(${MIC})
endif()
add_dependencies(libomp-micro-tests libomp-test-deps)
+# `omp` needs to be exported if in-tree build.
+set(export_to_llvmexports)
+if (NOT OPENMP_STANDALONE_BUILD)
+ get_target_export_arg(omp LLVM export_to_llvmexports)
+ set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS omp)
+endif()
+
# Install rules
# We want to install libomp in ${DESTDIR}/${CMAKE_INSTALL_FULL_LIBDIR}
# We want to install headers in ${DESTDIR}/${CMAKE_INSTALL_FULL_INCLUDEDIR}
if(WIN32)
- install(TARGETS omp RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
+ install(TARGETS omp ${export_to_llvmexports} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
install(TARGETS ${LIBOMP_IMP_LIB_TARGET} ARCHIVE DESTINATION "${OPENMP_INSTALL_LIBDIR}")
# Create aliases (regular copies) of the library for backwards compatibility
set(LIBOMP_ALIASES "libiomp5md")
@@ -371,7 +378,7 @@ if(WIN32)
endforeach()
else()
- install(TARGETS omp ${LIBOMP_INSTALL_KIND} DESTINATION "${OPENMP_INSTALL_LIBDIR}")
+ install(TARGETS omp ${export_to_llvmexports} ${LIBOMP_INSTALL_KIND} DESTINATION "${OPENMP_INSTALL_LIBDIR}")
if(${LIBOMP_INSTALL_ALIASES})
# Create aliases (symlinks) of the library for backwards compatibility