From 9f430cc911bc831aab827cf2c2cbb5f547f928d0 Mon Sep 17 00:00:00 2001 From: David Cantrell Date: Mon, 20 Dec 2021 12:04:55 -0500 Subject: [PATCH] Upgrade to fftw-3.3.10 Signed-off-by: David Cantrell --- .gitignore | 1 + fftw.spec | 156 +++++++++++++++++++++++++---------------------------- sources | 2 +- 3 files changed, 75 insertions(+), 84 deletions(-) diff --git a/.gitignore b/.gitignore index ca51393..dba6237 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ fftw-3.2.2.tar.gz /fftw-3.3.4.tar.gz /fftw-3.3.5.tar.gz /fftw-3.3.8.tar.gz +/fftw-3.3.10.tar.gz diff --git a/fftw.spec b/fftw.spec index 2590da9..8543d7c 100644 --- a/fftw.spec +++ b/fftw.spec @@ -11,19 +11,15 @@ %global mpi_list %{?mpi_list} openmpi %endif - Name: fftw -Version: 3.3.8 -Release: 11%{?dist} +Version: 3.3.10 +Release: 1%{?dist} Summary: A Fast Fourier Transform library License: GPLv2+ URL: http://www.fftw.org Source0: http://www.fftw.org/fftw-%{version}.tar.gz -BuildRequires: gcc-gfortran -BuildRequires: autoconf -BuildRequires: automake -BuildRequires: libtool +BuildRequires: gcc-gfortran %global quad 0 # Quad precision support only available with gcc >= 4.6 (Fedora >= 15) @@ -45,7 +41,7 @@ BuildRequires: openmpi-devel %if %{with mpich} || %{with openmpi} BuildRequires: environment-modules %endif -BuildRequires: make +BuildRequires: make %description @@ -273,11 +269,8 @@ library. %build # Explicitly load shell support for the environment-modules package, used # below via 'module' pseudo-command. -source /etc/profile.d/modules.sh +. /etc/profile.d/modules.sh -# Regenerate autoconf files using current tools so proper build flags -# from redhat-rpm-config are used -autoreconf -vfi # Configure uses g77 by default, if present on system export F77=gfortran @@ -298,113 +291,109 @@ prec_flags[3]=--enable-quad-precision %ifarch x86_64 # Enable SSE2 and AVX support for x86_64 -for((i=0;i<2;i++)); do - prec_flags[i]+=" --enable-sse2 --enable-avx" +for ((i=0; i<2; i++)) ; do + prec_flags[i]+=" --enable-sse2 --enable-avx" done %endif # No NEON run time detection, not all ARM SoCs have NEON #%ifarch %{arm} ## Compile support for NEON instructions -#for((i=0;i<2;i++)); do -# prec_flags[i]+=" --enable-neon" +#for ((i=0; i<2; i++)) ; do +# prec_flags[i]+=" --enable-neon" #done #%endif #%ifarch ppc ppc64 ## Compile support for Altivec instructions -#for((i=0;i<2;i++)); do - #prec_flags[i]+=" --enable-altivec" +#for ((i=0; i<2; i++)) ; do +# prec_flags[i]+=" --enable-altivec" #done #%endif # Loop over precisions %if %{quad} -for((iprec=0;iprec<4;iprec++)) +for ((iprec=0; iprec<4; iprec++)) ; do %else -for((iprec=0;iprec<3;iprec++)) +for ((iprec=0; iprec<3; iprec++)) ; do %endif -do - mkdir ${prec_name[iprec]}${ver_name[iver]} - cd ${prec_name[iprec]}${ver_name[iver]} - ln -s ../configure . - %{configure} ${BASEFLAGS} ${prec_flags[iprec]} - sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool - sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool - make %{?_smp_mflags} - cd .. + mkdir ${prec_name[iprec]}${ver_name[iver]} + cd ${prec_name[iprec]}${ver_name[iver]} + ln -s ../configure . + %{configure} ${BASEFLAGS} ${prec_flags[iprec]} + sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool + sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool + make %{?_smp_mflags} + cd .. done # MPI Builds - this duplicates the non-mpi builds, but oh well -for mpi in %{mpi_list} -do - module load mpi/${mpi}-%{_arch} - # Loop over precisions - no quad precision support with MPI - for((iprec=0;iprec<3;iprec++)) - do - mkdir ${mpi}-${prec_name[iprec]}${ver_name[iver]} - cd ${mpi}-${prec_name[iprec]}${ver_name[iver]} - ln -s ../configure . - # Force linking the _mpi.so libraries with the mpi libs. This works because - # we get rid of all of the non-mpi components of these builds - export CC=mpicc - %{configure} ${BASEFLAGS} ${prec_flags[iprec]} --enable-mpi \ - --libdir=%{_libdir}/$mpi/lib \ - --bindir=%{_libdir}/$mpi/bin \ - --sbindir=%{_libdir}/$mpi/sbin \ - --includedir=%{_includedir}/$mpi-%{_arch} \ - --mandir=%{_libdir}/$mpi/share/man - make %{?_smp_mflags} - cd .. - done - module unload mpi/${mpi}-%{_arch} +for mpi in %{mpi_list} ; do + module load mpi/${mpi}-%{_arch} + # Loop over precisions - no quad precision support with MPI + for((iprec=0;iprec<3;iprec++)) ; do + mkdir ${mpi}-${prec_name[iprec]}${ver_name[iver]} + cd ${mpi}-${prec_name[iprec]}${ver_name[iver]} + ln -s ../configure . + # Force linking the _mpi.so libraries with the mpi libs. This works because + # we get rid of all of the non-mpi components of these builds + export CC=mpicc + %{configure} ${BASEFLAGS} ${prec_flags[iprec]} \ + --enable-mpi \ + --libdir=%{_libdir}/$mpi/lib \ + --bindir=%{_libdir}/$mpi/bin \ + --sbindir=%{_libdir}/$mpi/sbin \ + --includedir=%{_includedir}/$mpi-%{_arch} \ + --mandir=%{_libdir}/$mpi/share/man + make %{?_smp_mflags} + cd .. + done + module unload mpi/${mpi}-%{_arch} done - %install # Explicitly load shell support for the environment-modules package, used # below via 'module' pseudo-command. source /etc/profile.d/modules.sh %if %{quad} -for ver in single double long quad +for ver in single double long quad ; do %else -for ver in single double long +for ver in single double long ; do %endif -do - make -C $ver install DESTDIR=%{buildroot} + make -C $ver install DESTDIR=%{buildroot} done + # MPI -for mpi in %{mpi_list} -do - module load mpi/${mpi}-%{_arch} - for ver in single double long - do - make -C ${mpi}-${ver} install DESTDIR=%{buildroot} - # Remove duplicated non-mpi libraries, binaries, and data - find %{buildroot}%{_libdir}/${mpi}/lib -name libfftw\* -a \! -name \*_mpi.\* -delete - rm -r %{buildroot}%{_libdir}/${mpi}/{bin,share} - done - module unload mpi/${mpi}-%{_arch} +for mpi in %{mpi_list} ; do + module load mpi/${mpi}-%{_arch} + for ver in single double long ; do + make -C ${mpi}-${ver} install DESTDIR=%{buildroot} + # Remove duplicated non-mpi libraries, binaries, and data + find %{buildroot}%{_libdir}/${mpi}/lib -name libfftw\* -a \! -name \*_mpi.\* -delete + rm -r %{buildroot}%{_libdir}/${mpi}/{bin,share} + done + module unload mpi/${mpi}-%{_arch} done + rm -f %{buildroot}%{_infodir}/dir find %{buildroot} -name \*.la -delete %check # Explicitly load shell support for the environment-modules package, used # below via 'module' pseudo-command. -source /etc/profile.d/modules.sh +. /etc/profile.d/modules.sh -bdir=`pwd` +bdir=$(pwd) %if %{quad} -for ver in single double long quad +for ver in single double long quad ; do %else -for ver in single double long +for ver in single double long ; do %endif -do - export LD_LIBRARY_PATH=$bdir/$ver/.libs:$bdir/$ver/threads/.libs - make %{?_smp_mflags} -C $ver check + export LD_LIBRARY_PATH=$bdir/$ver/.libs:$bdir/$ver/threads/.libs + make %{?_smp_mflags} -C $ver check done + # MPI %if %{with openmpi} %ifarch %{ix86} @@ -413,15 +402,13 @@ done export OMPI_MCA_btl="^vader" %endif %endif -for mpi in %{mpi_list} -do - module load mpi/${mpi}-%{_arch} - for ver in single double long - do - export LD_LIBRARY_PATH=$bdir/$ver/.libs:$bdir/$ver/threads/.libs - make %{?_smp_mflags} -C ${mpi}-${ver}/mpi check - done - module unload mpi/${mpi}-%{_arch} +for mpi in %{mpi_list} ; do + module load mpi/${mpi}-%{_arch} + for ver in single double long ; do + export LD_LIBRARY_PATH=$bdir/$ver/.libs:$bdir/$ver/threads/.libs + make %{?_smp_mflags} -C ${mpi}-${ver}/mpi check + done + module unload mpi/${mpi}-%{_arch} done %ldconfig_scriptlets libs-single @@ -543,6 +530,9 @@ done %endif %changelog +* Mon Dec 20 2021 David Cantrell - 3.3.10-1 +- Upgrade to fftw-3.3.10 + * Wed Jul 21 2021 Fedora Release Engineering - 3.3.8-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild diff --git a/sources b/sources index 6c02665..9ae29ab 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (fftw-3.3.8.tar.gz) = ab918b742a7c7dcb56390a0a0014f517a6dff9a2e4b4591060deeb2c652bf3c6868aa74559a422a276b853289b4b701bdcbd3d4d8c08943acf29167a7be81a38 +SHA512 (fftw-3.3.10.tar.gz) = 2d34b5ccac7b08740dbdacc6ebe451d8a34cf9d9bfec85a5e776e87adf94abfd803c222412d8e10fbaa4ed46f504aa87180396af1b108666cde4314a55610b40