[Openmp-commits] [openmp] eccdb24 - [OpenMP] Create versioned libgomp softlinks (#112973)
via Openmp-commits
openmp-commits at lists.llvm.org
Fri Oct 25 11:20:02 PDT 2024
Author: Ye Luo
Date: 2024-10-25T13:19:58-05:00
New Revision: eccdb2489483ca58d2cb35bc38967a8e33117575
URL: https://github.com/llvm/llvm-project/commit/eccdb2489483ca58d2cb35bc38967a8e33117575
DIFF: https://github.com/llvm/llvm-project/commit/eccdb2489483ca58d2cb35bc38967a8e33117575.diff
LOG: [OpenMP] Create versioned libgomp softlinks (#112973)
Add libgomp.1.dylib for MacOS and libgomp.so.1 for Linux
Linkers on Mac and Linux pick up versioned libgomp dynamic library
files. The existing softlinks (libgomp.dylib for MacOS and libgomp.so
for Linux) are insufficient. This helps alleviate the issue of mixing
libgomp and libomp at runtime.
Added:
Modified:
openmp/runtime/src/CMakeLists.txt
Removed:
################################################################################
diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
index 439cc20963a129..61c0bacc9f2062 100644
--- a/openmp/runtime/src/CMakeLists.txt
+++ b/openmp/runtime/src/CMakeLists.txt
@@ -253,6 +253,17 @@ if(NOT WIN32)
libiomp5${LIBOMP_LIBRARY_SUFFIX}
WORKING_DIRECTORY ${LIBOMP_LIBRARY_DIR}
)
+ if(LIBOMP_ENABLE_SHARED)
+ if(APPLE)
+ set(VERSIONED_LIBGOMP_NAME libgomp.1${LIBOMP_LIBRARY_SUFFIX})
+ else()
+ set(VERSIONED_LIBGOMP_NAME libgomp${LIBOMP_LIBRARY_SUFFIX}.1)
+ endif()
+ add_custom_command(TARGET omp POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E create_symlink ${LIBOMP_LIB_FILE} ${VERSIONED_LIBGOMP_NAME}
+ WORKING_DIRECTORY ${LIBOMP_LIBRARY_DIR}
+ )
+ endif()
endif()
# Definitions for testing, for reuse when testing libomptarget-nvptx.
@@ -439,13 +450,18 @@ else()
if(${LIBOMP_INSTALL_ALIASES})
# Create aliases (symlinks) of the library for backwards compatibility
+ extend_path(outdir "${CMAKE_INSTALL_PREFIX}" "${OPENMP_INSTALL_LIBDIR}")
set(LIBOMP_ALIASES "libgomp;libiomp5")
foreach(alias IN LISTS LIBOMP_ALIASES)
- extend_path(outdir "${CMAKE_INSTALL_PREFIX}" "${OPENMP_INSTALL_LIBDIR}")
install(CODE "execute_process(COMMAND \"\${CMAKE_COMMAND}\" -E create_symlink \"${LIBOMP_LIB_FILE}\"
\"${alias}${LIBOMP_LIBRARY_SUFFIX}\" WORKING_DIRECTORY
\"\$ENV{DESTDIR}${outdir}\")")
endforeach()
+ if(LIBOMP_ENABLE_SHARED)
+ install(CODE "execute_process(COMMAND \"\${CMAKE_COMMAND}\" -E create_symlink \"${LIBOMP_LIB_FILE}\"
+ \"${VERSIONED_LIBGOMP_NAME}\" WORKING_DIRECTORY
+ \"\$ENV{DESTDIR}${outdir}\")")
+ endif()
endif()
endif()
install(
More information about the Openmp-commits
mailing list