sollve: build on aarch64 (#19123)

This commit is contained in:
Toyohisa Kameyama 2020-10-07 22:54:07 +09:00 committed by GitHub
parent f83bd360c6
commit a12b03b8d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 3 deletions

View File

@ -0,0 +1,27 @@
commit 525b70302cea9b5850be9ee8d33b7660455082f2
Author: Shintaro Iwasaki <siwasaki@anl.gov>
Date: Wed Apr 15 03:46:44 2020 +0000
[BOLT] disable futex and adaptive locks if unused
On some architectures, including POWER 9, futex locks and/or adaptive locks are
not enabled by default, but BOLT assumed they are available, causing
compile-time errors on such a platform. This patch fixes it.
diff --git a/runtime/src/kmp_lock.cpp b/runtime/src/kmp_lock.cpp
index 5dcc4ee..5cda629 100644
--- a/runtime/src/kmp_lock.cpp
+++ b/runtime/src/kmp_lock.cpp
@@ -219,8 +219,12 @@ KMP_DEFINE_LOCKS(tas)
KMP_DEFINE_LOCKS(ticket)
KMP_DEFINE_LOCKS(queuing)
KMP_DEFINE_LOCKS(drdpa)
+#if KMP_USE_FUTEX
KMP_DEFINE_LOCKS(futex)
+#endif
+#if KMP_USE_ADAPTIVE_LOCKS
KMP_DEFINE_LOCKS(adaptive)
+#endif
typedef kmp_abt_mutex_lock_t kmp_hle_lock_t;
KMP_DEFINE_LOCKS(hle)
typedef kmp_abt_mutex_lock_t kmp_rtm_lock_t;

View File

@ -7,9 +7,10 @@
class Sollve(CMakePackage): class Sollve(CMakePackage):
"""The SOLLVE Project aims at scaling OpenMP by leveraging LLVM for exascale """The SOLLVE Project aims at scaling OpenMP by leveraging LLVM for
performance and portability of applications. This package provides a exascale performance and portability of applications. This package
collection of Clang/LLVM compilers and an OpenMP runtime library. provides a collection of Clang/LLVM compilers and an OpenMP runtime
library.
""" """
homepage = 'https://www.bnl.gov/compsci/projects/SOLLVE/' homepage = 'https://www.bnl.gov/compsci/projects/SOLLVE/'
@ -137,6 +138,8 @@ class Sollve(CMakePackage):
conflicts('%gcc@:5.0.999') conflicts('%gcc@:5.0.999')
conflicts('+omp_tsan') conflicts('+omp_tsan')
patch('disable_unused_lock.patch', when='@1.0a2', working_dir='projects/openmp')
@run_before('cmake') @run_before('cmake')
def check_darwin_lldb_codesign_requirement(self): def check_darwin_lldb_codesign_requirement(self):
if not self.spec.satisfies('+lldb platform=darwin'): if not self.spec.satisfies('+lldb platform=darwin'):