py-pythran: update checksum for patch (#25693)
* Replace URL patch with file patch * Add comment explaining patch origin and purpose
This commit is contained in:
parent
a018f48df9
commit
8ee5bf6d03
70
var/spack/repos/builtin/packages/py-pythran/omp.patch
Normal file
70
var/spack/repos/builtin/packages/py-pythran/omp.patch
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
diff --git a/omp/__init__.py b/omp/__init__.py
|
||||||
|
index bddae3063..10a4cc995 100644
|
||||||
|
--- a/omp/__init__.py
|
||||||
|
+++ b/omp/__init__.py
|
||||||
|
@@ -69,10 +69,16 @@ class OpenMP(object):
|
||||||
|
|
||||||
|
def init_not_msvc(self):
|
||||||
|
""" Find OpenMP library and try to load if using ctype interface. """
|
||||||
|
- # find_library() does not search automatically LD_LIBRARY_PATH
|
||||||
|
+ # find_library() does not automatically search LD_LIBRARY_PATH
|
||||||
|
+ # until Python 3.6+, so we explicitly add it.
|
||||||
|
+ # LD_LIBRARY_PATH is used on Linux, while macOS uses DYLD_LIBRARY_PATH
|
||||||
|
+ # and DYLD_FALLBACK_LIBRARY_PATH.
|
||||||
|
paths = os.environ.get('LD_LIBRARY_PATH', '').split(':')
|
||||||
|
+ paths += os.environ.get('DYLD_LIBRARY_PATH', '').split(':')
|
||||||
|
+ paths += os.environ.get('DYLD_FALLBACK_LIBRARY_PATH', '').split(':')
|
||||||
|
|
||||||
|
- for libomp_name in self.get_libomp_names():
|
||||||
|
+ libomp_names = self.get_libomp_names()
|
||||||
|
+ for libomp_name in libomp_names:
|
||||||
|
if cxx is None or sys.platform == 'win32':
|
||||||
|
# Note: Clang supports -print-file-name, but not yet for
|
||||||
|
# clang-cl as of v12.0.0 (April '21)
|
||||||
|
@@ -87,25 +93,27 @@ class OpenMP(object):
|
||||||
|
except (OSError, CalledProcessError):
|
||||||
|
pass
|
||||||
|
|
||||||
|
- # Try to load find libgomp shared library using loader search dirs
|
||||||
|
- libgomp_path = find_library("gomp")
|
||||||
|
-
|
||||||
|
- # Try to use custom paths if lookup failed
|
||||||
|
- for path in paths:
|
||||||
|
- if libgomp_path:
|
||||||
|
- break
|
||||||
|
- path = path.strip()
|
||||||
|
- if os.path.isdir(path):
|
||||||
|
- libgomp_path = find_library(os.path.join(str(path), "libgomp"))
|
||||||
|
-
|
||||||
|
- if not libgomp_path:
|
||||||
|
- raise ImportError("I can't find a shared library for libgomp,"
|
||||||
|
- " you may need to install it or adjust the "
|
||||||
|
- "LD_LIBRARY_PATH environment variable.")
|
||||||
|
- else:
|
||||||
|
- # Load the library (shouldn't fail with an absolute path right?)
|
||||||
|
- self.libomp = ctypes.CDLL(libgomp_path)
|
||||||
|
- self.version = 45
|
||||||
|
+ for libomp_name in libomp_names:
|
||||||
|
+ # Try to load find libomp shared library using loader search dirs
|
||||||
|
+ libomp_path = find_library(libomp_name)
|
||||||
|
+
|
||||||
|
+ # Try to use custom paths if lookup failed
|
||||||
|
+ for path in paths:
|
||||||
|
+ if libomp_path:
|
||||||
|
+ break
|
||||||
|
+ path = path.strip()
|
||||||
|
+ if os.path.isfile(os.path.join(path, libomp_name)):
|
||||||
|
+ libomp_path = os.path.join(path, libomp_name)
|
||||||
|
+
|
||||||
|
+ if libomp_path:
|
||||||
|
+ # Load the library (shouldn't fail with an absolute path right?)
|
||||||
|
+ self.libomp = ctypes.CDLL(libomp_path)
|
||||||
|
+ self.version = 45
|
||||||
|
+ return
|
||||||
|
+
|
||||||
|
+ raise ImportError("I can't find a shared library for libomp,"
|
||||||
|
+ " you may need to install it or adjust the "
|
||||||
|
+ "LD_LIBRARY_PATH environment variable.")
|
||||||
|
|
||||||
|
def __getattr__(self, name):
|
||||||
|
"""
|
@ -46,9 +46,8 @@ class PyPythran(PythonPackage):
|
|||||||
depends_on('py-beniget', when='@:0.9.3', type=('build', 'run'))
|
depends_on('py-beniget', when='@:0.9.3', type=('build', 'run'))
|
||||||
depends_on('llvm-openmp', when='%apple-clang', type=('build', 'run'))
|
depends_on('llvm-openmp', when='%apple-clang', type=('build', 'run'))
|
||||||
|
|
||||||
patch('https://patch-diff.githubusercontent.com/raw/serge-sans-paille/pythran/pull/1856.patch',
|
# https://github.com/serge-sans-paille/pythran/pull/1856
|
||||||
sha256='18f5e8985d636ad9c73b2f96b601aae299e0c315aa4c0dbee7b2599a63177218',
|
patch('omp.patch', when='@0.9.10:0.9.12')
|
||||||
when='@0.9.10:0.9.12')
|
|
||||||
|
|
||||||
def patch(self):
|
def patch(self):
|
||||||
# Compiler is used at run-time to determine name of OpenMP library to search for
|
# Compiler is used at run-time to determine name of OpenMP library to search for
|
||||||
|
Loading…
Reference in New Issue
Block a user