[packages/fftw3] - updated to 3.3.6 (pl2) - SIMD options update

qboosh qboosh at pld-linux.org
Tue May 9 21:14:56 CEST 2017


commit 2154597b0fd64f75b8dc2d39f85f679cb6b16c42
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Tue May 9 21:15:36 2017 +0200

    - updated to 3.3.6 (pl2)
    - SIMD options update

 fftw3.spec | 72 +++++++++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 48 insertions(+), 24 deletions(-)
---
diff --git a/fftw3.spec b/fftw3.spec
index 1667a30..1f2ec0b 100644
--- a/fftw3.spec
+++ b/fftw3.spec
@@ -1,23 +1,33 @@
+# NOTE (for distributors from NEWS file): don't enable too many SIMD variants in
+# distribution builds, because it increases planing time; by default enable just
+# most popular ones (like SSE, AVX).
+# The rest are available by bconds.
+#
+# TODO: mpi
 #
 # Conditional build:
-%bcond_without	fftwl	# "long" subpackages
-%bcond_without	fftwq	# "quad" subpackages
-%bcond_without	openmp	# OpenMP support
+%bcond_without	fftwl		# "long" subpackages
+%bcond_without	fftwq		# "quad" subpackages
+%bcond_without	openmp		# OpenMP support
+%bcond_with	avx128fma	# AVX128/FMA instructions (for some AMD machines)
+%bcond_with	avx256		# AVX2 256-bit FMA instructions
+%bcond_with	avx512		# AVX512 and KCVI [experimental]
 #
 Summary:	Fast Fourier Transform library
 Summary(pl.UTF-8):	Biblioteka z funkcjami szybkiej transformaty Fouriera
 Summary(pt_BR.UTF-8):	biblioteca fast fourier transform
 Name:		fftw3
-Version:	3.3.4
-Release:	2
+Version:	3.3.6
+%define	subver	pl2
+Release:	1
 License:	GPL v2+
 Group:		Libraries
-Source0:	ftp://ftp.fftw.org/pub/fftw/fftw-%{version}.tar.gz
-# Source0-md5:	2edab8c06b24feeb3b82bbb3ebf3e7b3
+Source0:	ftp://ftp.fftw.org/pub/fftw/fftw-%{version}-%{subver}.tar.gz
+# Source0-md5:	927e481edbb32575397eb3d62535a856
 Patch0:		%{name}-info.patch
 URL:		http://www.fftw.org/
-BuildRequires:	autoconf
-BuildRequires:	automake
+BuildRequires:	autoconf >= 2.50
+BuildRequires:	automake >= 1:1.7
 BuildRequires:	gcc-fortran
 %ifarch alpha ppc s390 s390x sparc sparcv9
 %if %{with fftwl}
@@ -280,7 +290,7 @@ Pliki programistyczne wspólne dla wszystkich wersji bibliotek fftw
 (pliki nagłówkowe, dokumentacja programisty).
 
 %prep
-%setup -q -n fftw-%{version}
+%setup -q -n fftw-%{version}-%{subver}
 %patch0 -p1
 
 %build
@@ -292,36 +302,50 @@ Pliki programistyczne wspólne dla wszystkich wersji bibliotek fftw
 # MMX/SSE/etc. seem to be safe because of runtime CPU detection
 for ver in %{builds}; do
 	OPTS=""
-	# k7,SSE,3dnow,altivec only for single
+	# SSE,altivec,neon at arm[32] only for single
 	if [ "$ver" = "single" ]; then
-%ifarch i686 pentium3 pentium4
+%ifarch pentium3 athlon
+		# for SSE2-aware subarchs SSE for single precision is enabled by --enable-sse2 option
 		OPTS="--enable-sse"
 %endif
-%ifarch athlon
-		OPTS="--enable-sse" # no "--enable-k7" - conflicts with shared, SEGV on athlons
+%ifarch %{arm}
+		OPTS="--enable-neon"
 %endif
-%ifarch ppc
+%ifarch ppc ppc64
 		OPTS="--enable-altivec"
 %endif
-%ifnarch i686 k6 athlon ppc
-		:	# keep sh happy about syntax
-%endif
+		: # keep sh happy about syntax on other archs
 	fi
-%ifarch i686 pentium4
-	# SSE2 only for double
+%ifarch i686 pentium4 %{x8664} x32
+	# SSE/SSE2 and AVX only for single and double
 	if [ "$ver" = "double" -o "$ver" = "single" ]; then
-		OPTS="--enable-sse2 --enable-avx"
+		OPTS="$OPTS --enable-sse2 --enable-avx"
+%if %{with avx256}
+		OPTS="$OPTS --enable-avx2"
+%endif
+%if %{with avx512}
+		OPTS="$OPTS --enable-avx512 --enable-kcvi"
+%endif
 	fi
 %endif
+%if %{with avx128fma}
+	OPTS="$OPTS --enable-avx128-fma"
+%endif
+%ifarch aarch64
+	OPTS="$OPTS --enable-neon"
+%endif
+%ifarch ppc ppc64
+	OPTS="$OPTS --enable-vsx"
+%endif
 install -d build-${ver}
 cd build-${ver}
 ../%configure \
+	--enable-$ver \
+	--enable-debug%{!?debug:=no} \
 	--enable-openmp \
 	--enable-shared \
 	--enable-threads \
-	--enable-$ver \
-	$OPTS \
-	--%{!?debug:dis}%{?debug:en}able-debug
+	$OPTS
 
 %{__make}
 cd ..
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/fftw3.git/commitdiff/2154597b0fd64f75b8dc2d39f85f679cb6b16c42



More information about the pld-cvs-commit mailing list