summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--numpy/distutils/fcompiler/__init__.py5
-rw-r--r--numpy/distutils/system_info.py6
-rw-r--r--numpy/tests/test_ctypeslib.py4
3 files changed, 13 insertions, 2 deletions
diff --git a/numpy/distutils/fcompiler/__init__.py b/numpy/distutils/fcompiler/__init__.py
index 397b36ce9..d2400459f 100644
--- a/numpy/distutils/fcompiler/__init__.py
+++ b/numpy/distutils/fcompiler/__init__.py
@@ -27,7 +27,7 @@ except NameError:
from numpy.compat import open_latin1
-from distutils.sysconfig import get_config_var, get_python_lib
+from distutils.sysconfig import get_config_var, get_config_vars, get_python_lib
from distutils.fancy_getopt import FancyGetopt
from distutils.errors import DistutilsModuleError, \
DistutilsExecError, CompileError, LinkError, DistutilsPlatformError
@@ -196,6 +196,9 @@ class FCompiler(CCompiler):
src_extensions = ['.for','.ftn','.f77','.f','.f90','.f95','.F','.F90']
obj_extension = ".o"
shared_lib_extension = get_config_var('SO') # or .dll
+ # fix long extension for Python >=3.2, see PEP 3149.
+ if 'SOABI' in get_config_vars():
+ shared_lib_extension = shared_lib_extension.replace('.'+get_config_var('SOABI'), '', 1)
static_lib_extension = ".a" # or .lib
static_lib_format = "lib%s%s" # or %s%s
shared_lib_format = "%s%s"
diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py
index 7cc33eb43..7d1379981 100644
--- a/numpy/distutils/system_info.py
+++ b/numpy/distutils/system_info.py
@@ -211,6 +211,10 @@ default_include_dirs = filter(os.path.isdir, default_include_dirs)
default_src_dirs = filter(os.path.isdir, default_src_dirs)
so_ext = distutils.sysconfig.get_config_vars('SO')[0] or ''
+# fix long extension for Python >=3.2, see PEP 3149.
+if 'SOABI' in distutils.sysconfig.get_config_vars():
+ so_ext = so_ext.replace('.'+distutils.sysconfig.get_config_var('SOABI'), '', 1)
+
def get_standard_file(fname):
"""Returns a list of files named 'fname' from
@@ -1324,7 +1328,7 @@ class lapack_opt_info(system_info):
or ('ATLAS_WITHOUT_LAPACK',None) in l:
need_lapack = 1
info = atlas_info
-
+
else:
warnings.warn(AtlasNotFoundError.__doc__)
need_blas = 1
diff --git a/numpy/tests/test_ctypeslib.py b/numpy/tests/test_ctypeslib.py
index 832ce683c..78403df9e 100644
--- a/numpy/tests/test_ctypeslib.py
+++ b/numpy/tests/test_ctypeslib.py
@@ -31,6 +31,10 @@ class TestLoadLibrary(TestCase):
try:
from distutils import sysconfig
so = sysconfig.get_config_var('SO')
+ # fix long extension for Python >=3.2, see PEP 3149.
+ if 'SOABI' in sysconfig.get_config_vars():
+ so = so.replace('.'+sysconfig.get_config_var('SOABI'), '', 1)
+
cdll = load_library('multiarray%s' % so,
np.core.multiarray.__file__)
except ImportError: