-
-
Notifications
You must be signed in to change notification settings - Fork 13.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
python3Packages.pythran: 0.9.12 -> 0.11.0, clean up a bit
Unbreaks latest scipy. Refreshed patch, removed line noise, removed/updated some old test stuff.
- Loading branch information
Showing
2 changed files
with
69 additions
and
69 deletions.
There are no files selected for viewing
117 changes: 66 additions & 51 deletions
117
pkgs/development/python-modules/pythran/0001-hardcode-path-to-libgomp.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,64 +1,79 @@ | ||
From 208fe98f10c580a5a2fb6a8cfdd56de109073925 Mon Sep 17 00:00:00 2001 | ||
From: Frederik Rietdijk <fridh@fridh.nl> | ||
Date: Sat, 17 Jul 2021 18:36:27 +0200 | ||
Subject: [PATCH] hardcode path to libgomp | ||
|
||
--- | ||
omp/__init__.py | 40 ++++------------------------------------ | ||
1 file changed, 4 insertions(+), 36 deletions(-) | ||
|
||
diff --git a/omp/__init__.py b/omp/__init__.py | ||
index bddae3063..9ba3678d8 100644 | ||
index 3801d1c8c..a93a74d6f 100644 | ||
--- a/omp/__init__.py | ||
+++ b/omp/__init__.py | ||
@@ -69,43 +69,11 @@ class OpenMP(object): | ||
@@ -48,72 +48,8 @@ class OpenMP(object): | ||
return ['omp', 'gomp', 'iomp5'] | ||
|
||
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 | ||
- paths = os.environ.get('LD_LIBRARY_PATH', '').split(':') | ||
+ libgomp_path = "@gomp@" | ||
- for libomp_name in self.get_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) | ||
- continue | ||
- """ Find OpenMP library and try to load if using ctype interface. """ | ||
- # 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. | ||
- env_vars = [] | ||
- if sys.platform == 'darwin': | ||
- env_vars = ['DYLD_LIBRARY_PATH', 'DYLD_FALLBACK_LIBRARY_PATH'] | ||
- else: | ||
- env_vars = ['LD_LIBRARY_PATH'] | ||
- | ||
- cmd = [cxx, '-print-file-name=' + libomp_name] | ||
- # the subprocess can fail in various ways in that case just give up | ||
- try: | ||
- path = os.path.dirname(check_output(cmd).decode().strip()) | ||
- if path: | ||
- paths.append(path) | ||
- except (OSError, CalledProcessError): | ||
- pass | ||
- paths = [] | ||
- for env_var in env_vars: | ||
- env_paths = os.environ.get(env_var, '') | ||
- if env_paths: | ||
- paths.extend(env_paths.split(os.pathsep)) | ||
- | ||
- # 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")) | ||
- libomp_names = self.get_libomp_names() | ||
- | ||
- 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 | ||
+ # Load the library (shouldn't fail with an absolute path right?) | ||
+ self.libomp = ctypes.CDLL(libgomp_path) | ||
- if cxx is not None: | ||
- for libomp_name in libomp_names: | ||
- cmd = [cxx, | ||
- '-print-file-name=lib{}{}'.format( | ||
- libomp_name, | ||
- get_shared_lib_extension())] | ||
- # The subprocess can fail in various ways, including because it | ||
- # doesn't support '-print-file-name'. In that case just give up. | ||
- try: | ||
- output = check_output(cmd, | ||
- stderr=DEVNULL) | ||
- path = os.path.dirname(output.decode().strip()) | ||
- if path: | ||
- paths.append(path) | ||
- except (OSError, CalledProcessError): | ||
- pass | ||
- | ||
- | ||
- 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 | ||
- if not libomp_path: | ||
- for path in paths: | ||
- candidate_path = os.path.join( | ||
- path, | ||
- 'lib{}{}'.format(libomp_name, | ||
- get_shared_lib_extension())) | ||
- if os.path.isfile(candidate_path): | ||
- libomp_path = candidate_path | ||
- break | ||
- | ||
- # Load the library | ||
- if libomp_path: | ||
- try: | ||
- self.libomp = ctypes.CDLL(libomp_path) | ||
- except OSError: | ||
- raise ImportError("found openMP library '{}' but couldn't load it. " | ||
- "This may happen if you are cross-compiling.".format(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 {} environment variable.".format(env_vars[0])) | ||
- | ||
+ self.libomp = ctypes.CDLL("@gomp@") | ||
+ self.version = 45 | ||
|
||
def __getattr__(self, name): | ||
""" | ||
-- | ||
2.32.0 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters