[Openmp-commits] [PATCH] D139857: [OpenMP][libomp] Fix macOS 12 library destruction
Jonathan Peyton via Phabricator via Openmp-commits
openmp-commits at lists.llvm.org
Mon Dec 12 09:37:51 PST 2022
jlpeyton created this revision.
jlpeyton added reviewers: tlwilmar, Nawrin, hbae.
jlpeyton added a project: OpenMP.
Herald added subscribers: guansong, kristof.beyls, yaxunl.
Herald added a project: All.
jlpeyton requested review of this revision.
Herald added a reviewer: jdoerfert.
Herald added a subscriber: sstefan1.
When building the library with `icc` and using it on macOS 12,
the library destruction process is skipped which has many OMPT tests
failing for macOS 12. This change registers the
`__kmp_internal_end_library()` call for `atexit()` which will be a
harmless, redundant call for macOS 11 and below and the only destructor
called for macOS 12+.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D139857
Files:
openmp/runtime/src/kmp_runtime.cpp
Index: openmp/runtime/src/kmp_runtime.cpp
===================================================================
--- openmp/runtime/src/kmp_runtime.cpp
+++ openmp/runtime/src/kmp_runtime.cpp
@@ -7198,10 +7198,12 @@
__kmp_register_atfork();
#endif
-#if !KMP_DYNAMIC_LIB
+#if !KMP_DYNAMIC_LIB || \
+ ((KMP_COMPILER_ICC || KMP_COMPILER_ICX) && KMP_OS_DARWIN)
{
/* Invoke the exit handler when the program finishes, only for static
- library. For dynamic library, we already have _fini and DllMain. */
+ library and macOS* dynamic. For other dynamic libraries, we already
+ have _fini and DllMain. */
int rc = atexit(__kmp_internal_end_atexit);
if (rc != 0) {
__kmp_fatal(KMP_MSG(FunctionError, "atexit()"), KMP_ERR(rc),
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D139857.482174.patch
Type: text/x-patch
Size: 821 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20221212/7f0f2856/attachment.bin>
More information about the Openmp-commits
mailing list