[Openmp-commits] [PATCH] D107698: [libomptarget][amdgpu] use --allow-shlib-undefined to link on FreeBSD
Dimitry Andric via Phabricator via Openmp-commits
openmp-commits at lists.llvm.org
Sat Aug 7 12:40:36 PDT 2021
dim created this revision.
dim added reviewers: JonChesterfield, jdoerfert, emaste.
Herald added subscribers: kerbowa, krytarowski, arichardson, t-tye, tpr, dstuttard, yaxunl, mgorny, nhaehnle, jvesely, kzhuravl.
dim requested review of this revision.
Herald added a subscriber: wdng.
Herald added a project: OpenMP.
On FreeBSD, the `environ` symbol is undefined at link time for shared
libraries, but resolved by the dynamic linker at runtime. Therefore,
allow the symbol to be undefined when creating a shared library, by
using the `--allow-shlib-undefined` linker flag, instead of `-z defs`
(a.k.a `--no-undefined`).
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D107698
Files:
openmp/libomptarget/plugins/amdgpu/CMakeLists.txt
Index: openmp/libomptarget/plugins/amdgpu/CMakeLists.txt
===================================================================
--- openmp/libomptarget/plugins/amdgpu/CMakeLists.txt
+++ openmp/libomptarget/plugins/amdgpu/CMakeLists.txt
@@ -78,6 +78,15 @@
# When we build for debug, OPENMP_LIBDIR_SUFFIX get set to -debug
install(TARGETS omptarget.rtl.amdgpu LIBRARY DESTINATION "lib${OPENMP_LIBDIR_SUFFIX}")
+if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+ # On FreeBSD, the 'environ' symbol is undefined at link time, but resolved by
+ # the dynamic linker at runtime. Therefore, allow the symbol to be undefined
+ # when creating a shared library.
+ set(LDFLAGS_UNDEFINED "-Wl,--allow-shlib-undefined")
+else()
+ set(LDFLAGS_UNDEFINED "-Wl,-z,defs")
+endif()
+
set_property(TARGET omptarget.rtl.amdgpu PROPERTY INSTALL_RPATH "$ORIGIN")
target_link_libraries(
omptarget.rtl.amdgpu
@@ -88,7 +97,7 @@
${LIBOMPTARGET_DEP_LIBELF_LIBRARIES}
${OPENMP_PTHREAD_LIB}
"-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/../exports"
- "-Wl,-z,defs"
+ ${LDFLAGS_UNDEFINED}
)
if (LLVM_BINARY_DIR)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D107698.364977.patch
Type: text/x-patch
Size: 1105 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20210807/44a31c77/attachment.bin>
More information about the Openmp-commits
mailing list