-
-
Notifications
You must be signed in to change notification settings - Fork 12.2k
Bug in ATLAS version detection #14212
Copy link
Copy link
Closed
Labels
Description
I'm trying to build the latest numpy release on macOS with ATLAS as my BLAS/LAPACK provider but numpy fails to detect the ATLAS version correctly.
Reproducing code example:
First, I create the following site.cfg:
[atlas]
libraries = satlas
library_dirs = /Users/Adam/spack/opt/spack/darwin-mojave-x86_64/clang-10.0.1-apple/atlas-3.10.3-j53o6sg7cswtaak6duqdofi7emddfg6z/lib
rpath = /Users/Adam/spack/opt/spack/darwin-mojave-x86_64/clang-10.0.1-apple/atlas-3.10.3-j53o6sg7cswtaak6duqdofi7emddfg6z/lib
include_dirs = /Users/Adam/spack/opt/spack/darwin-mojave-x86_64/clang-10.0.1-apple/atlas-3.10.3-j53o6sg7cswtaak6duqdofi7emddfg6z/include
Then, I build numpy with:
$ python -s setup.py --no-user-cfg build
$ python -s setup.py --no-user-cfg install --prefix=/Users/Adam/spack/opt/spack/darwin-mojave-x86_64/clang-10.0.1-apple/py-numpy-1.17.0-37xrxjmnbitsruc7alrutzpvdil2xhhy --single-version-externally-managed --root=/Error message:
blas_opt_info:
atlas_3_10_blas_threads_info:
Setting PTATLAS=ATLAS
customize UnixCCompiler
Setting PTATLAS=ATLAS
get_default_fcompiler: matching types: '['gnu95', 'nag', 'absoft', 'ibm', 'intel', 'gnu', 'g95', 'pg']'
customize Gnu95FCompiler
Found executable /Users/Adam/spack/lib/spack/env/clang/gfortran
customize Gnu95FCompiler
customize Gnu95FCompiler using config
compiling '_configtest.c':
/* This file is generated from numpy/distutils/system_info.py */
void ATL_buildinfo(void);
int main(void) {
ATL_buildinfo();
return 0;
}
C compiler: /Users/Adam/spack/lib/spack/env/clang/clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC
compile options: '-c'
clang: _configtest.c
/Users/Adam/spack/lib/spack/env/clang/clang _configtest.o -L/Users/Adam/spack/opt/spack/darwin-mojave-x86_64/clang-10.0.1-apple/atlas-3.10.3-j53o6sg7cswtaak6duqdofi7emddfg6z/lib -lsatlas -o _configtest
dyld: __dyld section not supported in /Users/Adam/spack/opt/spack/darwin-mojave-x86_64/clang-10.0.1-apple/atlas-3.10.3-j53o6sg7cswtaak6duqdofi7emddfg6z/lib/libsatlas.dylib
subprocess exited with signal 122
success!
removing: _configtest.c _configtest.o _configtest.o.d _configtest
Status: 255
Output:
Running from numpy source directory.
Traceback (most recent call last):
File "setup.py", line 443, in <module>
setup_package()
File "setup.py", line 435, in setup_package
setup(**metadata)
File "/private/var/folders/21/hwq39zyj4g36x6zjfyl5l8080000gn/T/Adam/spack-stage/spack-stage-y1kdwttz/spack-src/numpy/distutils/core.py", line 137, in setup
config = configuration()
File "setup.py", line 158, in configuration
config.add_subpackage('numpy')
File "/private/var/folders/21/hwq39zyj4g36x6zjfyl5l8080000gn/T/Adam/spack-stage/spack-stage-y1kdwttz/spack-src/numpy/distutils/misc_util.py", line 1035, in add_subpackage
caller_level = 2)
File "/private/var/folders/21/hwq39zyj4g36x6zjfyl5l8080000gn/T/Adam/spack-stage/spack-stage-y1kdwttz/spack-src/numpy/distutils/misc_util.py", line 1004, in get_subpackage
caller_level = caller_level + 1)
File "/private/var/folders/21/hwq39zyj4g36x6zjfyl5l8080000gn/T/Adam/spack-stage/spack-stage-y1kdwttz/spack-src/numpy/distutils/misc_util.py", line 941, in _get_configuration_from_setup_py
config = setup_module.configuration(*args)
File "numpy/setup.py", line 10, in configuration
config.add_subpackage('core')
File "/private/var/folders/21/hwq39zyj4g36x6zjfyl5l8080000gn/T/Adam/spack-stage/spack-stage-y1kdwttz/spack-src/numpy/distutils/misc_util.py", line 1035, in add_subpackage
caller_level = 2)
File "/private/var/folders/21/hwq39zyj4g36x6zjfyl5l8080000gn/T/Adam/spack-stage/spack-stage-y1kdwttz/spack-src/numpy/distutils/misc_util.py", line 1004, in get_subpackage
caller_level = caller_level + 1)
File "/private/var/folders/21/hwq39zyj4g36x6zjfyl5l8080000gn/T/Adam/spack-stage/spack-stage-y1kdwttz/spack-src/numpy/distutils/misc_util.py", line 941, in _get_configuration_from_setup_py
config = setup_module.configuration(*args)
File "numpy/core/setup.py", line 764, in configuration
blas_info = get_info('blas_opt', 0)
File "/private/var/folders/21/hwq39zyj4g36x6zjfyl5l8080000gn/T/Adam/spack-stage/spack-stage-y1kdwttz/spack-src/numpy/distutils/system_info.py", line 444, in get_info
return cl().get_info(notfound_action)
File "/private/var/folders/21/hwq39zyj4g36x6zjfyl5l8080000gn/T/Adam/spack-stage/spack-stage-y1kdwttz/spack-src/numpy/distutils/system_info.py", line 690, in get_info
self.calc_info()
File "/private/var/folders/21/hwq39zyj4g36x6zjfyl5l8080000gn/T/Adam/spack-stage/spack-stage-y1kdwttz/spack-src/numpy/distutils/system_info.py", line 1810, in calc_info
if getattr(self, '_calc_info_{}'.format(blas))():
File "/private/var/folders/21/hwq39zyj4g36x6zjfyl5l8080000gn/T/Adam/spack-stage/spack-stage-y1kdwttz/spack-src/numpy/distutils/system_info.py", line 1750, in _calc_info_atlas
info = get_info('atlas_3_10_blas_threads')
File "/private/var/folders/21/hwq39zyj4g36x6zjfyl5l8080000gn/T/Adam/spack-stage/spack-stage-y1kdwttz/spack-src/numpy/distutils/system_info.py", line 444, in get_info
return cl().get_info(notfound_action)
File "/private/var/folders/21/hwq39zyj4g36x6zjfyl5l8080000gn/T/Adam/spack-stage/spack-stage-y1kdwttz/spack-src/numpy/distutils/system_info.py", line 690, in get_info
self.calc_info()
File "/private/var/folders/21/hwq39zyj4g36x6zjfyl5l8080000gn/T/Adam/spack-stage/spack-stage-y1kdwttz/spack-src/numpy/distutils/system_info.py", line 1347, in calc_info
atlas_version, atlas_extra_info = get_atlas_version(**atlas)
File "/private/var/folders/21/hwq39zyj4g36x6zjfyl5l8080000gn/T/Adam/spack-stage/spack-stage-y1kdwttz/spack-src/numpy/distutils/system_info.py", line 1589, in get_atlas_version
'ATLAS_INFO', _c_string_literal(atlas_version))
File "/private/var/folders/21/hwq39zyj4g36x6zjfyl5l8080000gn/T/Adam/spack-stage/spack-stage-y1kdwttz/spack-src/numpy/distutils/system_info.py", line 177, in _c_string_literal
s = s.replace('\\', r'\\')
AttributeError: 'NoneType' object has no attribute 'replace'
For whatever reason, my ATLAS version is None, not a string. Hopefully this should be an easy fix.
Numpy/Python version information:
macOS 10.14.6
Clang 10.0.1
ATLAS 3.10.3
Python 3.7.4
Setuptools 41.0.1
Numpy 1.17.0
Note that this bug only occurs on macOS or with the Clang compiler. I was able to successfully build numpy with ATLAS on CentOS 7 with GCC 4.8.5.
EDIT: I tried setting ATLAS_VERSION to 3.10.3 but that didn't work.
Reactions are currently unavailable