Bug#902296: pyfftw: hardwires long precision support fftwl (not all arches)
Drew Parsons
dparsons at debian.org
Sun Jun 24 17:17:44 BST 2018
Source: pyfftw
Version: 0.10.4+dfsg1-3
Severity: normal
pyFFTW provides a choice of different flavours of FFTW, i.e. double, single
or long precision.
For instance nthreads_plan_setters is defined in pyfftw.pyx
as an fftw_generic_plan_with_nthreads array with 3 entries:
[0] = &fftw_plan_with_nthreads
[1] = &fftwf_plan_with_nthreads
[2] = &fftwl_plan_with_nthreads
Each of these 3 references is a symbol provided by the appropriate
variant of libfftw3*.so.
The problem is that not all arches provide the fftwl long precision flavour
from libfftw3l*.so.
So when python-fftw tries to load, it fails with a warning like:
Traceback (most recent call last):
File "/usr/lib/python2.7/unittest/loader.py", line 254, in _find_tests
module = self._get_module_from_name(name)
File "/usr/lib/python2.7/unittest/loader.py", line 232, in _get_module_from_name
__import__(name)
File "test/test_pyfftw_multithreaded.py", line 35, in <module>
from pyfftw import FFTW
File "pyfftw/__init__.py", line 16, in <module>
from .pyfftw import (
ImportError: pyfftw/pyfftw.so: undefined symbol: fftwl_plan_with_nthreads
It should be possible for python-fftw to load and run on these arches,
if the fftwl is only included conditionally in pyfftw.{c,pxd,pyx}.
Can preprocessor #ifdef be used with cython/pyrex ?
>From https://packages.debian.org/unstable/libfftw3-dev, the affected
arches for which fftwl is not available are
arm64
armel
armhf
mips
mips64el
mipsel
ppc64el
alpha
hppa
ia64
m68k
ppc64
riscv64
sh4
sparc64
-- System Information:
Debian Release: buster/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.16.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), LANGUAGE=en_AU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
More information about the debian-science-maintainers
mailing list