Red Hat Bugzilla – Bug 893946
Incorrect build flags on ARM
Last modified: 2013-01-10 09:32:24 EST
The changelog for 3.3.3-3 has the following:
* Tue Dec 18 2012 Susi Lehtola <firstname.lastname@example.org> - 3.3.3-3
- After consultation with upstream, enable SSE2 also on x86, altivec on ppc
and ppc64 and NEON on arm.
Fedora ARM doesn't compile with NEON because there are platforms where NEON isn't supported. I'm not aware of any consultation with the Fedora ARM team on what would be best here.
Also I'm fairly certain that for x86 there are platforms for which SSE2 isn't supported either so it should use the rpm default to ensure it runs on all intended platforms.
Please resolve the ARM issue and check to ensure what the right setting for x86 is.
fftw has dynamic CPU detection. Closing as NOTABUG.
Please provide a link to the details.
After looking into the sources I think Susi is right. simd-support subdir contains the detection (via executing SIMD instruction and SIGILL handler) and SIMD compiler flags are passed to CC only in selected subdirs.
Date: Tue, 18 Dec 2012 14:10:39 +0100
From: Matteo Frigo <email@example.com>
To: Jussi Lehtola <firstname.lastname@example.org>
Subject: Re: Recommended compilation flags for distributions
FFTW does have runtime CPU detection, so it is safe to enable all
features that your compiler supports. Not too long ago a
fully-configured FFTW was running fine on an 80386 as well as a modern
CPU, and I expect this to be true today as well.
The reason why sse/avx are not enabled by default is that the core of
FFTW is written in C89 and we want to keep it like that. Things like
SSE are not supported, e.g., by the plan 9 compiler. OpenBSD still
uses gcc-2.95. AVX was not supported by most compilers until last year,
and avx support in gcc-4.6 was quite buggy. The IBM compiler did not
quite work for altivec for a long time. NEON support in llvm is still
quite experimental. So we don't feel comfortable enabling these
extensions by default.
The other consideration is the size of the binary. A full SSE/AVX
binary is maybe 3x the size of the scalar FPU binary. I assume this
does not matter much for Fedora.
In summary, you can safely enable all the SIMD extensions.
For the reference, I have not enabled AVX support on x86/x86_64 because at least Gromacs runs faster with plain SSE2.