Compare commits

...

No commits in common. 'c9' and 'cs10' have entirely different histories.
c9 ... cs10

@ -1 +1 @@
59831bd4b2705381ee395e54aa6e0069b10c3626 SOURCES/fftw-3.3.8.tar.gz
6abe7321c8c35ef52e56e299e66a9b967baf148a SOURCES/fftw-3.3.10.tar.gz

2
.gitignore vendored

@ -1 +1 @@
SOURCES/fftw-3.3.8.tar.gz
SOURCES/fftw-3.3.10.tar.gz

@ -0,0 +1,13 @@
diff --git a/FFTW3Config.cmake.in b/FFTW3Config.cmake.in
index 6b1fbc2..e8a2ed8 100644
--- a/FFTW3Config.cmake.in
+++ b/FFTW3Config.cmake.in
@@ -10,8 +10,6 @@ set (FFTW3@PREC_SUFFIX@_LIBRARIES fftw3@PREC_SUFFIX@)
set (FFTW3@PREC_SUFFIX@_LIBRARY_DIRS @CMAKE_INSTALL_FULL_LIBDIR@)
set (FFTW3@PREC_SUFFIX@_INCLUDE_DIRS @CMAKE_INSTALL_FULL_INCLUDEDIR@)
-include ("${CMAKE_CURRENT_LIST_DIR}/FFTW3LibraryDepends.cmake")
-
if (CMAKE_VERSION VERSION_LESS 2.8.3)
set (CMAKE_CURRENT_LIST_DIR)
endif ()

@ -1,9 +1,19 @@
%bcond_without mpich
%if %{defined rhel}
%bcond_with mpich
%bcond_with openmpi
%else
# TODO check later if we can enable mpich on s390x
%ifarch s390 s390x
%bcond_with mpich
%else
%bcond_without mpich
%endif
%ifarch s390 s390x %{ix86}
%bcond_with openmpi
%else
%bcond_without openmpi
%endif
%endif
%if %{with mpich}
%global mpi_list %{?mpi_list} mpich
%endif
@ -11,19 +21,17 @@
%global mpi_list %{?mpi_list} openmpi
%endif
Name: fftw
Version: 3.3.8
Release: 12%{?dist}
Version: 3.3.10
Release: 13%{?dist}
Summary: A Fast Fourier Transform library
License: GPLv2+
# Generally, the code is under GPL but some headers are also under MIT or BSD:
License: GPL-2.0-or-later AND MIT AND BSD-2-Clause
URL: http://www.fftw.org
Source0: http://www.fftw.org/fftw-%{version}.tar.gz
BuildRequires: gcc-gfortran
Patch1: fix_autotools_build.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libtool
BuildRequires: gcc-gfortran
%global quad 0
# Quad precision support only available with gcc >= 4.6 (Fedora >= 15)
@ -32,6 +40,16 @@ BuildRequires: libtool
%global quad 1
%endif
# Names of precisions to (maybe) build
%global prec_names prec_name[0]=single;prec_name[1]=double;prec_name[2]=long;prec_name[3]=quad
# Number of precisions to build; sometimes quad is not possible
%global nprec 3
%if %{quad}
%global nprec 4
%endif
# Number of precisions to build for MPI
%global nmpiprec 3
# For check phase
BuildRequires: time
BuildRequires: perl-interpreter
@ -268,27 +286,22 @@ This package contains the manual for the FFTW fast Fourier transform
library.
%prep
%setup -q
%autosetup -p1
%build
%if %{with mpich} || %{with openmpi}
# 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
%endif
# 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
BASEFLAGS="--enable-shared --disable-dependency-tracking --enable-threads"
BASEFLAGS+=" --enable-openmp"
# Precisions to build
prec_name[0]=single
prec_name[1]=double
prec_name[2]=long
prec_name[3]=quad
%prec_names
# Corresponding flags
prec_flags[0]=--enable-single
@ -298,128 +311,115 @@ 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 --enable-avx2"
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"
#done
#%endif
#%ifarch ppc ppc64
## Compile support for Altivec instructions
#for((i=0;i<2;i++)); do
#prec_flags[i]+=" --enable-altivec"
#done
#%endif
%ifarch %{arm64}
# Compile support for NEON instructions
for ((i=0; i<2; i++)) ; do
prec_flags[i]+=" --enable-neon"
done
BASEFLAGS+=" --enable-armv8-cntvct-el0"
%endif
# Loop over precisions
%if %{quad}
for((iprec=0;iprec<4;iprec++))
%else
for((iprec=0;iprec<3;iprec++))
%ifarch ppc ppc64
# Compile support for Altivec instructions; only supported for single precision
for ((i=0; i<1; i++)) ; do
prec_flags[i]+=" --enable-altivec"
done
%endif
do
# Loop over precisions
for ((iprec=0; iprec<%{nprec}; iprec++)) ; 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}
%make_build
cd ..
done
# MPI Builds - this duplicates the non-mpi builds, but oh well
for mpi in %{mpi_list}
do
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
for((iprec=0;iprec<%{nmpiprec};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 \
if [ $mpi = "openmpi" ]; then
export MPIRUN="mpirun --oversubscribe"
fi
%{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}
%make_build
cd ..
done
module unload mpi/${mpi}-%{_arch}
done
%install
%prec_names
%if %{with mpich} || %{with openmpi}
# 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
%else
for ver in single double long
%endif
do
make -C $ver install DESTDIR=%{buildroot}
for((iprec=0;iprec<%{nprec};iprec++)) ; do
%make_install -C ${prec_name[iprec]}
done
# MPI
for mpi in %{mpi_list}
do
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}
for((iprec=0;iprec<%{nmpiprec};iprec++)) ; do
%make_install -C ${mpi}-${prec_name[iprec]}
# 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
%prec_names
%if %{with mpich} || %{with openmpi}
# Explicitly load shell support for the environment-modules package, used
# below via 'module' pseudo-command.
source /etc/profile.d/modules.sh
bdir=`pwd`
%if %{quad}
for ver in single double long quad
%else
for ver in single double long
. /etc/profile.d/modules.sh
%endif
do
export LD_LIBRARY_PATH=$bdir/$ver/.libs:$bdir/$ver/threads/.libs
make %{?_smp_mflags} -C $ver check
bdir=$(pwd)
for((iprec=0;iprec<%{nprec};iprec++)) ; do
export LD_LIBRARY_PATH=$bdir/${prec_name[iprec]}/.libs:$bdir/${prec_name[iprec]}/threads/.libs
%make_build -C ${prec_name[iprec]} check
done
# MPI
%if %{with openmpi}
%ifarch %{ix86}
# disable Open MPI's vader byte transfer layer while running tests on 32-bit x86 platforms
# as it is known to be troublesome <https://github.com/open-mpi/ompi/issues/4260>
export OMPI_MCA_btl="^vader"
%endif
%endif
for mpi in %{mpi_list}
do
# Allow oversubscription with openmpi
export OMPI_MCA_rmaps_base_oversubscribe=1
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
for((iprec=0;iprec<%{nmpiprec};iprec++)) ; do
export LD_LIBRARY_PATH=$bdir/${prec_name[iprec]}/.libs:$bdir/${prec_name[iprec]}/threads/.libs
%make_build -C ${mpi}-${prec_name[iprec]}/mpi check
done
module unload mpi/${mpi}-%{_arch}
done
@ -543,12 +543,59 @@ done
%endif
%changelog
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 3.3.8-12
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 3.3.10-13
- Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 3.3.10-12
- Bump release for June 2024 mass rebuild
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.10-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.10-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
- Fix i686 build by disabling openmpi
- Fix "The file FFTW3LibraryDepends.cmake is missing" in autotools build
https://github.com/FFTW/fftw3/issues/130#issuecomment-1902748460 (#2193075)
- Disable mpich on s390x to fix the build
* Thu Jul 27 2023 Lukáš Zaoral <lzaoral@redhat.com> - 3.3.10-9
- migrate to SPDX license format
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.10-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Mar 28 2023 David Cantrell <dcantrell@redhat.com> - 3.3.10-7
- Rebuild
* Mon Mar 27 2023 Trent Piepho <tpiepho@gmail.com> - 3.3.10-6
- Enable AVX2 on x86-86
- Enable NEON on aarch64
- Clean up precision list
- Fix for OpenMPI build with < 4 processors
- Fix building with no enabled MPI types
- Enable single precision Altivec on PPC
- Enable CNTVCT_EL0 support on ARMv8
* Thu Mar 02 2023 Orion Poplawski <orion@nwra.com> - 3.3.10-5
- Use make macros
- Drop openmpi vader workaround
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.10-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.10-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.10-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Mon Dec 20 2021 David Cantrell <dcantrell@redhat.com> - 3.3.10-1
- Upgrade to fftw-3.3.10
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 3.3.8-11
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.8-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.8-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

Loading…
Cancel
Save