Compare commits

...

4 Commits
master ... el6

Author SHA1 Message Date
Dominik 'Rathann' Mierzejewski
cfb0fd3990 drop _isa from Requires: gcc-gfortran, i686 package is missing from x86_64 repo 2015-05-17 22:17:24 +02:00
Dominik 'Rathann' Mierzejewski
224ac504c0 fix build on EL6
- disable mpich subpackage on ppc64 (bug #1218579)
- drop %%license macro which doesn't exist on EL6
2015-05-05 13:28:54 +02:00
Dominik 'Rathann' Mierzejewski
81a8f43742 fix build on epel-6-i386
Don't try to compile AVX intrinsics if SSE compilation failed.
2015-05-05 11:32:50 +02:00
Dominik 'Rathann' Mierzejewski
cdfc38ca53 fix build on EL6 (autoconf too old, missing gcc intrinsics) 2015-05-04 14:35:03 +02:00
5 changed files with 318 additions and 15 deletions

View File

@ -6,7 +6,19 @@ diff -up mpich/configure.ac.atlas mpich/configure.ac
dnl first check blas
- AC_SEARCH_LIBS([dgemm],[blas],[have_blas=yes],[have_blas=no])
+ AC_SEARCH_LIBS([dgemm],[satlas blas],[have_blas=yes],[have_blas=no])
+ AC_SEARCH_LIBS([dgemm],[[f77blas atlas] blas],[have_blas=yes],[have_blas=no])
AC_MSG_CHECKING([whether we can link a program with a blas lib])
AC_MSG_RESULT([${have_blas}])
diff -up mpich/configure.atlas mpich/configure
--- mpich/configure.atlas 2015-03-18 10:49:42.000000000 +0100
+++ mpich/configure 2015-05-04 12:03:18.861651356 +0200
@@ -6507,7 +6401,7 @@
call dgemm
end
_ACEOF
-for ac_lib in '' blas; do
+for ac_lib in '' 'f77blas -latlas' blas; do
if test -z "$ac_lib"; then
ac_res="none required"
else

View File

@ -0,0 +1,147 @@
diff -up mpich/src/elpa2_kernels/elpa2_kernels_complex_sse-avx_1hv.cpp.intrinsics mpich/src/elpa2_kernels/elpa2_kernels_complex_sse-avx_1hv.cpp
--- mpich/src/elpa2_kernels/elpa2_kernels_complex_sse-avx_1hv.cpp.intrinsics 2015-03-16 11:39:58.000000000 +0100
+++ mpich/src/elpa2_kernels/elpa2_kernels_complex_sse-avx_1hv.cpp 2015-05-04 13:36:14.915917441 +0200
@@ -604,6 +604,35 @@ static __forceinline void hh_trafo_compl
}
#else
+#ifndef _mm_loaddup_pd
+static __forceinline __m128d _mm_loaddup_pd(double const * dp)
+{
+ union
+ {
+ __m128d d;
+ double f64[2];
+ } a;
+ a.f64[0] = *dp;
+ a.f64[1] = *dp;
+ return a.d;
+}
+#endif
+#ifndef _mm_addsub_pd
+static __forceinline __m128d _mm_addsub_pd(__m128d a, __m128d b)
+{
+ union
+ {
+ __m128d d;
+ double f64[2];
+ } A, B;
+ A.d = a;
+ B.d = b;
+
+ A.f64[0] -= B.f64[0];
+ A.f64[1] += B.f64[1];
+ return A.d;
+}
+#endif
static __forceinline void hh_trafo_complex_kernel_6_SSE_1hv(std::complex<double>* q, std::complex<double>* hh, int nb, int ldq)
{
double* q_dbl = (double*)q;
diff -up mpich/src/elpa2_kernels/elpa2_kernels_complex_sse-avx_2hv.cpp.intrinsics mpich/src/elpa2_kernels/elpa2_kernels_complex_sse-avx_2hv.cpp
--- mpich/src/elpa2_kernels/elpa2_kernels_complex_sse-avx_2hv.cpp.intrinsics 2015-03-16 11:39:58.000000000 +0100
+++ mpich/src/elpa2_kernels/elpa2_kernels_complex_sse-avx_2hv.cpp 2015-05-04 13:37:31.900484062 +0200
@@ -1493,6 +1493,35 @@ static __forceinline void hh_trafo_compl
_mm256_store_pd(&q_dbl[(2*nb*ldq)+0], q1);
}
#else
+#ifndef _mm_loaddup_pd
+static __forceinline __m128d _mm_loaddup_pd(double const * dp)
+{
+ union
+ {
+ __m128d d;
+ double f64[2];
+ } a;
+ a.f64[0] = *dp;
+ a.f64[1] = *dp;
+ return a.d;
+}
+#endif
+#ifndef _mm_addsub_pd
+static __forceinline __m128d _mm_addsub_pd(__m128d a, __m128d b)
+{
+ union
+ {
+ __m128d d;
+ double f64[2];
+ } A, B;
+ A.d = a;
+ B.d = b;
+
+ A.f64[0] -= B.f64[0];
+ A.f64[1] += B.f64[1];
+ return A.d;
+}
+#endif
static __forceinline void hh_trafo_complex_kernel_4_SSE_2hv(std::complex<double>* q, std::complex<double>* hh, int nb, int ldq, int ldh, std::complex<double> s)
{
double* q_dbl = (double*)q;
diff -up mpich/src/elpa2_kernels/elpa2_kernels_real_sse-avx_2hv.c.intrinsics mpich/src/elpa2_kernels/elpa2_kernels_real_sse-avx_2hv.c
--- mpich/src/elpa2_kernels/elpa2_kernels_real_sse-avx_2hv.c.intrinsics 2015-03-16 11:39:58.000000000 +0100
+++ mpich/src/elpa2_kernels/elpa2_kernels_real_sse-avx_2hv.c 2015-05-04 13:30:17.618286220 +0200
@@ -1001,6 +1001,19 @@ void double_hh_trafo_fast_(double* q, do
* matrix vector product with two householder
* vectors + a rank 2 update is performed
*/
+#ifndef _mm_loaddup_pd
+ __forceinline __m128d _mm_loaddup_pd(double const * dp)
+{
+ union
+ {
+ __m128d d;
+ double f64[2];
+ } a;
+ a.f64[0] = *dp;
+ a.f64[1] = *dp;
+ return a.d;
+}
+#endif
__forceinline void hh_trafo_kernel_12_SSE_2hv(double* q, double* hh, int nb, int ldq, int ldh, double s)
{
/////////////////////////////////////////////////////
diff -up mpich/src/elpa2_kernels/elpa2_kernels_real_sse-avx_4hv.c.intrinsics mpich/src/elpa2_kernels/elpa2_kernels_real_sse-avx_4hv.c
--- mpich/src/elpa2_kernels/elpa2_kernels_real_sse-avx_4hv.c.intrinsics 2015-03-16 11:39:58.000000000 +0100
+++ mpich/src/elpa2_kernels/elpa2_kernels_real_sse-avx_4hv.c 2015-05-04 13:30:12.830250942 +0200
@@ -1334,6 +1334,19 @@ __forceinline void hh_trafo_kernel_4_AVX
* matrix vector product with two householder
* vectors + a rank 1 update is performed
*/
+#ifndef _mm_loaddup_pd
+ __forceinline __m128d _mm_loaddup_pd(double const * dp)
+{
+ union
+ {
+ __m128d d;
+ double f64[2];
+ } a;
+ a.f64[0] = *dp;
+ a.f64[1] = *dp;
+ return a.d;
+}
+#endif
__forceinline void hh_trafo_kernel_6_SSE_4hv(double* q, double* hh, int nb, int ldq, int ldh, double s_1_2, double s_1_3, double s_2_3, double s_1_4, double s_2_4, double s_3_4)
{
/////////////////////////////////////////////////////
diff -up mpich/src/elpa2_kernels/elpa2_kernels_real_sse-avx_6hv.c.intrinsics mpich/src/elpa2_kernels/elpa2_kernels_real_sse-avx_6hv.c
--- mpich/src/elpa2_kernels/elpa2_kernels_real_sse-avx_6hv.c.intrinsics 2015-03-16 11:39:58.000000000 +0100
+++ mpich/src/elpa2_kernels/elpa2_kernels_real_sse-avx_6hv.c 2015-05-04 13:30:06.741206082 +0200
@@ -1744,6 +1744,19 @@ __forceinline void hh_trafo_kernel_4_AVX
_mm256_store_pd(&q[(nb+4)*ldq],q1);
}
#else
+#ifndef _mm_loaddup_pd
+ __forceinline __m128d _mm_loaddup_pd(double const * dp)
+{
+ union
+ {
+ __m128d d;
+ double f64[2];
+ } a;
+ a.f64[0] = *dp;
+ a.f64[1] = *dp;
+ return a.d;
+}
+#endif
/**
* Unrolled kernel that computes
* 4 rows of Q simultaneously, a

View File

@ -1,6 +1,6 @@
diff -up mpich/configure.ac.avx mpich/configure.ac
--- mpich/configure.ac.avx 2015-03-20 15:26:06.535080683 +0100
+++ mpich/configure.ac 2015-03-20 15:26:06.536080688 +0100
--- mpich/configure.ac.avx 2015-05-05 11:06:33.132304515 +0200
+++ mpich/configure.ac 2015-05-05 11:06:33.137304689 +0200
@@ -213,6 +213,11 @@ dnl first test failed: try again after u
[can_compile_avx=yes],
[can_compile_avx=no]
@ -21,9 +21,49 @@ diff -up mpich/configure.ac.avx mpich/configure.ac
rm -rf modules/ .fortran_dependencies/
mkdir modules
diff -up mpich/configure.avx mpich/configure
--- mpich/configure.avx 2015-05-05 11:06:33.136304654 +0200
+++ mpich/configure 2015-05-05 11:20:57.544768442 +0200
@@ -638,6 +638,7 @@ LTLIBOBJS
LIBOBJS
PKG_CONFIG_FILE
SUFFIX
+AVXCFLAGS
OPENMP_LDFLAGS
OPENMP_CFLAGS
with_amd_bulldozer_kernel
@@ -6049,14 +6050,14 @@ $as_echo_n "checking whether we can comp
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if test x"${can_compile_sse}" = x"yes" && ac_fn_c_try_compile "$LINENO" ; then
can_compile_avx=yes
else
can_compile_avx=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- if test x"${can_compile_avx}" = x"no"; then
+ if test x"${can_compile_sse}" = x"yes" && test x"${can_compile_avx}" = x"no"; then
CFLAGS="$CFLAGS -mavx"
CXXFLAGS="$CXXFLAGS -mavx"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6076,6 +6077,11 @@ else
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test x"${can_compile_avx}" = x"yes" ; then
+ AVXCFLAGS="-mavx"
+ fi
+ CFLAGS=$save_CFLAGS
+ CXXFLAGS=$save_CXXFLAGS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${can_compile_avx}" >&5
$as_echo "${can_compile_avx}" >&6; }
diff -up mpich/Makefile.am.avx mpich/Makefile.am
--- mpich/Makefile.am.avx 2015-03-20 15:26:06.534080677 +0100
+++ mpich/Makefile.am 2015-03-20 15:31:55.590089898 +0100
--- mpich/Makefile.am.avx 2015-05-05 11:06:33.131304480 +0200
+++ mpich/Makefile.am 2015-05-05 11:06:33.141304828 +0200
@@ -8,6 +8,8 @@ AM_LDFLAGS = $(SCALAPACK_LDFLAGS)
# libelpa
lib_LTLIBRARIES = libelpa@SUFFIX@.la
@ -33,3 +73,23 @@ diff -up mpich/Makefile.am.avx mpich/Makefile.am
libelpa@SUFFIX@_la_SOURCES = src/elpa_utilities.F90 \
src/elpa1.F90 \
diff -up mpich/Makefile.in.avx mpich/Makefile.in
--- mpich/Makefile.in.avx 2015-05-05 11:06:33.131304480 +0200
+++ mpich/Makefile.in 2015-05-05 11:06:33.141304828 +0200
@@ -774,6 +774,7 @@ AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
+AVXCFLAGS = @AVXCFLAGS@
AWK = @AWK@
CC = @CC@
CCAS = @CCAS@
@@ -918,6 +919,8 @@ AM_LDFLAGS = $(SCALAPACK_LDFLAGS)
# libelpa
lib_LTLIBRARIES = libelpa@SUFFIX@.la
libelpa@SUFFIX@_la_LINK = $(FCLINK) $(AM_LDFLAGS) -version-info $(ELPA_SO_VERSION) -lstdc++
+libelpa@SUFFIX@_la_CFLAGS = $(AVXCFLAGS) $(AM_CFLAGS)
+libelpa@SUFFIX@_la_CXXFLAGS = $(AVXCFLAGS) $(AM_CXXFLAGS)
libelpa@SUFFIX@_la_SOURCES = src/elpa_utilities.F90 src/elpa1.F90 \
src/elpa2_utilities.F90 src/elpa2.F90 src/elpa_c_interface.F90 \
src/elpa_qr/qr_utils.f90 src/elpa_qr/elpa_qrkernels.f90 \

View File

@ -1,6 +1,6 @@
diff -up mpich/elpa.pc.in.r mpich/elpa.pc.in
--- mpich/elpa.pc.in.r 2015-03-16 11:39:51.000000000 +0100
+++ mpich/elpa.pc.in 2015-03-20 10:59:37.966517510 +0100
+++ mpich/elpa.pc.in 2015-03-24 14:46:15.776044997 +0100
@@ -9,4 +9,4 @@ Version: @PACKAGE_VERSION@
URL: @PACKAGE_URL@
Libs: -L${libdir} -lelpa@SUFFIX@ @LIBS@ @OPENMP_FCFLAGS@
@ -69,3 +69,65 @@ diff -up mpich/Makefile.am.r mpich/Makefile.am
chmod +x elpa2_test_complex_choose_kernel_with_api.sh
elpa2_utilities.i: $(top_srcdir)/src/elpa2_utilities.F90
diff -up mpich/Makefile.in.r mpich/Makefile.in
--- mpich/Makefile.in.avx 2015-03-18 10:49:43.000000000 +0100
+++ mpich/Makefile.in 2015-05-04 12:03:19.989659664 +0200
@@ -2202,47 +2262,47 @@
.PRECIOUS: Makefile
elpa1_test_real.sh:
- echo 'mpiexec -n 2 ./elpa1_test_real@SUFFIX@ $$TEST_FLAGS' > elpa1_test_real.sh
+ echo 'mpiexec -n `getconf _NPROCESSORS_ONLN` ./elpa1_test_real@SUFFIX@ $$TEST_FLAGS' > elpa1_test_real.sh
chmod +x elpa1_test_real.sh
elpa1_test_real_with_c.sh:
- echo 'mpiexec -n 2 ./elpa1_test_real_with_c@SUFFIX@ $$TEST_FLAGS' > elpa1_test_real_with_c.sh
+ echo 'mpiexec -n `getconf _NPROCESSORS_ONLN` ./elpa1_test_real_with_c@SUFFIX@ $$TEST_FLAGS' > elpa1_test_real_with_c.sh
chmod +x elpa1_test_real_with_c.sh
elpa1_test_real_c_version.sh:
- echo 'mpiexec -n 2 ./elpa1_test_real_c_version@SUFFIX@ $$TEST_FLAGS' > elpa1_test_real_c_version.sh
+ echo 'mpiexec -n `getconf _NPROCESSORS_ONLN` ./elpa1_test_real_c_version@SUFFIX@ $$TEST_FLAGS' > elpa1_test_real_c_version.sh
chmod +x elpa1_test_real_c_version.sh
elpa2_test_real.sh:
- echo 'mpiexec -n 2 ./elpa2_test_real@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real.sh
+ echo 'mpiexec -n `getconf _NPROCESSORS_ONLN` ./elpa2_test_real@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real.sh
chmod +x elpa2_test_real.sh
elpa2_test_real_default_kernel.sh:
- echo 'mpiexec -n 2 ./elpa2_test_real_default_kernel@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_default_kernel.sh
+ echo 'mpiexec -n `getconf _NPROCESSORS_ONLN` ./elpa2_test_real_default_kernel@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_default_kernel.sh
chmod +x elpa2_test_real_default_kernel.sh
elpa2_test_real_default_kernel_qr_decomposition.sh:
- echo 'mpiexec -n 2 ./elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@' > elpa2_test_real_default_kernel_qr_decomposition.sh
+ echo 'mpiexec -n `getconf _NPROCESSORS_ONLN` ./elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@' > elpa2_test_real_default_kernel_qr_decomposition.sh
chmod +x elpa2_test_real_default_kernel_qr_decomposition.sh
elpa2_test_real_choose_kernel_with_api.sh:
- echo 'mpiexec -n 2 ./elpa2_test_real_choose_kernel_with_api@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_choose_kernel_with_api.sh
+ echo 'mpiexec -n `getconf _NPROCESSORS_ONLN` ./elpa2_test_real_choose_kernel_with_api@SUFFIX@ $$TEST_FLAGS' > elpa2_test_real_choose_kernel_with_api.sh
chmod +x elpa2_test_real_choose_kernel_with_api.sh
elpa1_test_complex.sh:
- echo 'mpiexec -n 2 ./elpa1_test_complex@SUFFIX@ $$TEST_FLAGS' > elpa1_test_complex.sh
+ echo 'mpiexec -n `getconf _NPROCESSORS_ONLN` ./elpa1_test_complex@SUFFIX@ $$TEST_FLAGS' > elpa1_test_complex.sh
chmod +x elpa1_test_complex.sh
elpa2_test_complex.sh:
- echo 'mpiexec -n 2 ./elpa2_test_complex@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex.sh
+ echo 'mpiexec -n `getconf _NPROCESSORS_ONLN` ./elpa2_test_complex@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex.sh
chmod +x elpa2_test_complex.sh
elpa2_test_complex_default_kernel.sh:
- echo 'mpiexec -n 2 ./elpa2_test_complex_default_kernel@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_default_kernel.sh
+ echo 'mpiexec -n `getconf _NPROCESSORS_ONLN` ./elpa2_test_complex_default_kernel@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_default_kernel.sh
chmod +x elpa2_test_complex_default_kernel.sh
elpa2_test_complex_choose_kernel_with_api.sh:
- echo 'mpiexec -n 2 ./elpa2_test_complex_choose_kernel_with_api@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_choose_kernel_with_api.sh
+ echo 'mpiexec -n `getconf _NPROCESSORS_ONLN` ./elpa2_test_complex_choose_kernel_with_api@SUFFIX@ $$TEST_FLAGS' > elpa2_test_complex_choose_kernel_with_api.sh
chmod +x elpa2_test_complex_choose_kernel_with_api.sh
elpa2_utilities.i: $(top_srcdir)/src/elpa2_utilities.F90

View File

@ -3,7 +3,7 @@
Summary: High-performance library for parallel solution of eigenvalue problems
Name: elpa
Version: 2015.02.002
Release: 4%{?dist}
Release: 4%{?dist}.1
URL: http://elpa.rzg.mpg.de/
Source0: http://elpa.rzg.mpg.de/elpa-%{version}.tar.gz
# fix pkgconfig file
@ -14,10 +14,11 @@ Patch1: elpa-rpm.patch
Patch2: elpa-atlas.patch
# don't use AVX instructions in test binaries
Patch3: elpa-no-avx.patch
# emulate missing intrinsics
Patch4: elpa-missing-intrinsics.patch
License: LGPLv3+
BuildRequires: atlas-devel
BuildRequires: gcc-gfortran
BuildRequires: libtool
%ifnarch aarch64 ppc64le
BuildRequires: prelink
%endif
@ -59,6 +60,8 @@ eigenvalue problems.
This package contains the C header files for ELPA.
# mpich seems to be unavailable on ppc64 - bug #1218579
%ifnarch ppc64
%package mpich
Summary: Fast library for parallel solution of eigenvalue problems (MPICH version)
BuildRequires: mpich-devel
@ -78,7 +81,7 @@ This package contains ELPA built against MPICH.
%package mpich-devel
Summary: Development files for ELPA (MPICH version)
Requires: %{name}-mpich%{?_isa} = %{version}-%{release}
Requires: gcc-gfortran%{?_isa}
Requires: gcc-gfortran
Requires: %{name}-devel = %{version}-%{release}
Provides: %{name}-mpi-devel = %{version}-%{release}
@ -88,6 +91,7 @@ ELPA is a Fortran-based high-performance computational library for the
eigenvalue problems.
This package contains the development files for ELPA (MPICH version).
%endif
%package openmpi
Summary: Fast library for parallel solution of eigenvalue problems (OpenMPI version)
@ -110,7 +114,7 @@ This package contains ELPA built against OpenMPI.
%package openmpi-devel
Summary: Development files for ELPA (OpenMPI version)
Requires: %{name}-openmpi%{?_isa} = %{version}-%{release}
Requires: gcc-gfortran%{?_isa}
Requires: gcc-gfortran
Requires: %{name}-devel = %{version}-%{release}
Provides: %{name}-mpi-devel = %{version}-%{release}
@ -128,7 +132,7 @@ pushd mpich
%patch1 -p1 -b .r
%patch2 -p1 -b .atlas
%patch3 -p1 -b .avx
autoreconf -vifs
%patch4 -p1 -b .intrinsics
popd
cp -pr mpich openmpi
mkdir _openmp
@ -137,6 +141,7 @@ cp -pr mpich openmpi _openmp/
%build
export FCFLAGS=-ffree-line-length-none
%ifnarch ppc64
%{_mpich_load}
export LDFLAGS="-L%{_libdir}/atlas -L$MPI_LIB"
pushd mpich
@ -154,6 +159,7 @@ pushd _openmp/mpich
make %{?_smp_mflags} V=1
popd
%{_mpich_unload}
%endif
%{_openmpi_load}
export LDFLAGS="-L%{_libdir}/atlas -L$MPI_LIB"
@ -174,8 +180,12 @@ popd
%{_openmpi_unload}
%install
mpis=openmpi
%ifnarch ppc64
mpis="mpich $mpis"
%endif
for s in '' _openmp ; do
for mpi in mpich openmpi ; do
for mpi in $mpis ; do
pushd ${s:-.}/${mpi}
make DESTDIR=%{buildroot} install
rm %{buildroot}%{_bindir}/elpa?_test_*
@ -198,6 +208,7 @@ done
%if 1
%check
%ifnarch ppc64
%{_mpich_load}
pushd mpich
make check V=1 || cat ./test-suite.log
@ -206,6 +217,7 @@ pushd _openmp/mpich
make check V=1 || cat ./test-suite.log
popd
%{_mpich_unload}
%endif
# only non-mt openmpi build can be tested, see bug #1105902
%{_openmpi_load}
@ -215,18 +227,20 @@ popd
%{_openmpi_unload}
%endif
%ifnarch ppc64
%post mpich -p /sbin/ldconfig
%postun mpich -p /sbin/ldconfig
%endif
%post openmpi -p /sbin/ldconfig
%postun openmpi -p /sbin/ldconfig
%files common
%license %{_pkgdocdir}/COPYING
%license %{_pkgdocdir}/gpl.txt
%license %{_pkgdocdir}/lgpl.txt
%{_pkgdocdir}/COPYING
%{_pkgdocdir}/gpl.txt
%{_pkgdocdir}/lgpl.txt
%{_pkgdocdir}/README
%files devel
@ -234,6 +248,7 @@ popd
%{_includedir}/elpa_openmp-%{version}
%{_pkgdocdir}/examples
%ifnarch ppc64
%files mpich
%{_libdir}/mpich%{?_opt_cc_suffix}/bin/elpa2_print_kernels
%{_libdir}/mpich%{?_opt_cc_suffix}/bin/elpa2_print_kernels_openmp
@ -246,6 +261,7 @@ popd
%{_libdir}/mpich%{?_opt_cc_suffix}/lib/pkgconfig/elpa-%{version}.pc
%{_libdir}/mpich%{?_opt_cc_suffix}/lib/pkgconfig/elpa_openmp-%{version}.pc
%{_fmoddir}/mpich%{?_cc_name_suffix}/*.mod
%endif
# only non-mt openmpi build, see bug #1105902
%files openmpi
@ -263,11 +279,17 @@ popd
%exclude %{_fmoddir}/openmpi%{?_cc_name_suffix}/*_openmp.mod
%changelog
* Sun May 17 2015 Dominik Mierzejewski <rpm@greysector.net> 2015.02.002-4.1
- drop _isa from Requires: gcc-gfortran, i686 package is missing from x86_64 repo
* Mon May 04 2015 Dominik Mierzejewski <rpm@greysector.net> 2015.02.002-4
- fix build on EPEL7 (missing _pkgdocdir macro and BR: rsh for openmpi)
- move examples to -devel subpackage
- print whole testsuite log in case of test failure
- re-enable openmpi tests on i686 and armv7hl
- fix build on EL6 (autoconf too old, missing gcc intrinsics)
- disable mpich subpackage on ppc64 (bug #1218579)
- drop %%license macro which doesn't exist on EL6
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 2015.02.002-3
- Rebuilt for GCC 5 C++11 ABI change