From d2e9bc913a11ef40f4a0188a3512b3ca36a46f82 Mon Sep 17 00:00:00 2001 From: Dominik Mierzejewski Date: May 12 2016 14:03:44 +0000 Subject: update from git master - enable OpenCL on armv7hl and BR: pocl >= 0.13-4 (#1324438) - drop libxml2 BR (upstream switched to bundled tinyxml2-3.0.0) - add missing arches in arch-dependent sections --- diff --git a/.gitignore b/.gitignore index 6c0f3c1..a4f8b4d 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,4 @@ manual-4.0.pdf /manual-5.1.1.pdf /gromacs-bec9c8757e59cae58fc61ed841c0bb73c84079db.tar.gz /gromacs-d6e35c96ceeb552afeeec4655567af2945994958.tar.gz +/gromacs-d44d7d6bebdb7fa52090b744854d49f34099e044.tar.gz diff --git a/gromacs-tests-i686.patch b/gromacs-tests-i686.patch index 735401e..1bd3372 100644 --- a/gromacs-tests-i686.patch +++ b/gromacs-tests-i686.patch @@ -1,19 +1,19 @@ -diff -up gromacs-bec9c8757e59cae58fc61ed841c0bb73c84079db/src/gromacs/random/tests/tabulatednormaldistribution.cpp.i686 gromacs-bec9c8757e59cae58fc61ed841c0bb73c84079db/src/gromacs/random/tests/tabulatednormaldistribution.cpp ---- gromacs-bec9c8757e59cae58fc61ed841c0bb73c84079db/src/gromacs/random/tests/tabulatednormaldistribution.cpp.i686 2016-03-18 16:05:26.000000000 +0100 -+++ gromacs-bec9c8757e59cae58fc61ed841c0bb73c84079db/src/gromacs/random/tests/tabulatednormaldistribution.cpp 2016-03-27 11:45:10.126923922 +0200 -@@ -87,6 +87,7 @@ TEST(TabulatedNormalDistributionTest, Ou - checker.checkSequence(result.begin(), result.end(), "TabulatedNormalDistribution16"); +diff -up gromacs-d44d7d6bebdb7fa52090b744854d49f34099e044/src/gromacs/random/tests/tabulatednormaldistribution.cpp.i686 gromacs-d44d7d6bebdb7fa52090b744854d49f34099e044/src/gromacs/random/tests/tabulatednormaldistribution.cpp +--- gromacs-d44d7d6bebdb7fa52090b744854d49f34099e044/src/gromacs/random/tests/tabulatednormaldistribution.cpp.i686 2016-05-10 16:55:17.000000000 +0200 ++++ gromacs-d44d7d6bebdb7fa52090b744854d49f34099e044/src/gromacs/random/tests/tabulatednormaldistribution.cpp 2016-05-12 15:23:13.985642388 +0200 +@@ -151,6 +151,7 @@ TEST(TabulatedNormalDistributionTest, Al + EXPECT_EQ(distA(rngA), distB(rngB, paramA)); } +#if 0 - TEST(TabulatedNormalDistributionTest, OutputDouble14) + TEST(TabulatedNormalDistributionTableTest, HasValidProperties) { - gmx::test::TestReferenceData data; -@@ -102,6 +103,7 @@ TEST(TabulatedNormalDistributionTest, Ou - } - checker.checkSequence(result.begin(), result.end(), "TabulatedNormalDistributionDouble14"); + std::vector table = TabulatedNormalDistribution::makeTable(); +@@ -172,6 +173,7 @@ TEST(TabulatedNormalDistributionTableTes + double variance = sumOfSquares / table.size(); + EXPECT_REAL_EQ_TOL(1.0, variance, tolerance) << "Table should have unit variance"; } +#endif - TEST(TabulatedNormalDistributionTest, Logical) - { + } // namespace anonymous + diff --git a/gromacs-use-system-lmfit.patch b/gromacs-use-system-lmfit.patch index 4e20abd..5febccd 100644 --- a/gromacs-use-system-lmfit.patch +++ b/gromacs-use-system-lmfit.patch @@ -1,22 +1,22 @@ -diff -up gromacs-a7093a73959458a1f4aa4e384104a5515a4f2863/src/gromacs/CMakeLists.txt.lmfit gromacs-a7093a73959458a1f4aa4e384104a5515a4f2863/src/gromacs/CMakeLists.txt ---- gromacs-a7093a73959458a1f4aa4e384104a5515a4f2863/src/gromacs/CMakeLists.txt.lmfit 2016-02-23 22:23:54.000000000 +0100 -+++ gromacs-a7093a73959458a1f4aa4e384104a5515a4f2863/src/gromacs/CMakeLists.txt 2016-02-24 11:30:09.673453825 +0100 -@@ -203,6 +203,7 @@ target_link_libraries(libgromacs +diff -up gromacs-d44d7d6bebdb7fa52090b744854d49f34099e044/src/gromacs/CMakeLists.txt.lmfit gromacs-d44d7d6bebdb7fa52090b744854d49f34099e044/src/gromacs/CMakeLists.txt +--- gromacs-d44d7d6bebdb7fa52090b744854d49f34099e044/src/gromacs/CMakeLists.txt.lmfit 2016-05-10 16:55:17.000000000 +0200 ++++ gromacs-d44d7d6bebdb7fa52090b744854d49f34099e044/src/gromacs/CMakeLists.txt 2016-05-12 12:33:06.416806977 +0200 +@@ -204,6 +204,7 @@ target_link_libraries(libgromacs ${GMX_EXTRA_LIBRARIES} ${TNG_IO_LIBRARIES} ${FFT_LIBRARIES} ${LINEAR_ALGEBRA_LIBRARIES} + ${LMFIT_LIBRARIES} ${XML_LIBRARIES} - ${THREAD_LIB} ${GMX_SHARED_LINKER_FLAGS} ${OPENCL_LIBRARIES}) - set_target_properties(libgromacs PROPERTIES -diff -up gromacs-a7093a73959458a1f4aa4e384104a5515a4f2863/src/gromacs/correlationfunctions/CMakeLists.txt.lmfit gromacs-a7093a73959458a1f4aa4e384104a5515a4f2863/src/gromacs/correlationfunctions/CMakeLists.txt ---- gromacs-a7093a73959458a1f4aa4e384104a5515a4f2863/src/gromacs/correlationfunctions/CMakeLists.txt.lmfit 2016-02-24 11:30:09.673453825 +0100 -+++ gromacs-a7093a73959458a1f4aa4e384104a5515a4f2863/src/gromacs/correlationfunctions/CMakeLists.txt 2016-02-24 11:33:47.587456640 +0100 + ${THREAD_LIB} ${GMX_SHARED_LINKER_FLAGS} ${OPENCL_LIBRARIES} + ${GMX_STDLIB_LIBRARIES}) +diff -up gromacs-d44d7d6bebdb7fa52090b744854d49f34099e044/src/gromacs/correlationfunctions/CMakeLists.txt.lmfit gromacs-d44d7d6bebdb7fa52090b744854d49f34099e044/src/gromacs/correlationfunctions/CMakeLists.txt +--- gromacs-d44d7d6bebdb7fa52090b744854d49f34099e044/src/gromacs/correlationfunctions/CMakeLists.txt.lmfit 2016-05-10 16:55:17.000000000 +0200 ++++ gromacs-d44d7d6bebdb7fa52090b744854d49f34099e044/src/gromacs/correlationfunctions/CMakeLists.txt 2016-05-12 12:33:06.416806977 +0200 @@ -33,9 +33,9 @@ # the research papers on the package. Check out http://www.gromacs.org. file(GLOB GMXCORRFUNC_SOURCES *.cpp) --file(GLOB LMFIT_SOURCES ${CMAKE_SOURCE_DIR}/src/external/lmfit/*.c) +-file(GLOB LMFIT_SOURCES ${CMAKE_SOURCE_DIR}/src/external/lmfit/*.cpp) +find_library(LMFIT_LIBRARIES lmfit) -set(LIBGROMACS_SOURCES ${LIBGROMACS_SOURCES} ${GMXCORRFUNC_SOURCES} ${LMFIT_SOURCES} PARENT_SCOPE) @@ -24,24 +24,41 @@ diff -up gromacs-a7093a73959458a1f4aa4e384104a5515a4f2863/src/gromacs/correlatio if (BUILD_TESTING) add_subdirectory(tests) endif() -diff -up gromacs-a7093a73959458a1f4aa4e384104a5515a4f2863/src/gromacs/correlationfunctions/expfit.cpp.lmfit gromacs-a7093a73959458a1f4aa4e384104a5515a4f2863/src/gromacs/correlationfunctions/expfit.cpp ---- gromacs-a7093a73959458a1f4aa4e384104a5515a4f2863/src/gromacs/correlationfunctions/expfit.cpp.lmfit 2016-02-23 22:23:54.000000000 +0100 -+++ gromacs-a7093a73959458a1f4aa4e384104a5515a4f2863/src/gromacs/correlationfunctions/expfit.cpp 2016-02-24 11:34:14.894582306 +0100 +diff -up gromacs-d44d7d6bebdb7fa52090b744854d49f34099e044/src/gromacs/correlationfunctions/expfit.cpp.lmfit gromacs-d44d7d6bebdb7fa52090b744854d49f34099e044/src/gromacs/correlationfunctions/expfit.cpp +--- gromacs-d44d7d6bebdb7fa52090b744854d49f34099e044/src/gromacs/correlationfunctions/expfit.cpp.lmfit 2016-05-10 16:55:17.000000000 +0200 ++++ gromacs-d44d7d6bebdb7fa52090b744854d49f34099e044/src/gromacs/correlationfunctions/expfit.cpp 2016-05-12 12:49:08.266651639 +0200 @@ -52,7 +52,7 @@ #include --#include "external/lmfit/lmcurve.h" +-#include "external/lmfit/gmx_lmcurve.h" +#include #include "gromacs/correlationfunctions/integrate.h" #include "gromacs/fileio/xvgr.h" -@@ -483,7 +483,7 @@ static gmx_bool lmfit_exp(int n +@@ -448,7 +448,7 @@ static gmx_bool lmfit_exp(int n + /* Using default control structure for double precision fitting that + * comes with the lmfit package (i.e. from the include file). + */ +- control = gmx_lm_control_double; ++ control = lm_control_double; + control.verbosity = (bVerbose ? 1 : 0); + control.n_maxpri = 0; + control.m_maxpri = 0; +@@ -483,14 +483,14 @@ static gmx_bool lmfit_exp(int n do { ochisq = chisq; -- lmcurve(nparam, parm, nfit, x, y, dy, +- gmx_lmcurve(nparam, parm, nfit, x, y, dy, + lmcurve_tyd(nparam, parm, nfit, x, y, dy, - lmcurves[eFitFn], &control, status); + lmcurves[eFitFn], &control, status); chisq = gmx::square(status->fnorm); if (bVerbose) + { + printf("status: fnorm = %g, nfev = %d, userbreak = %d\noutcome = %s\n", + status->fnorm, status->nfev, status->userbreak, +- gmx_lm_infmsg[status->outcome]); ++ lm_infmsg[status->outcome]); + } + if (bVerbose) + { diff --git a/gromacs.spec b/gromacs.spec index 1349006..5e6c3ca 100644 --- a/gromacs.spec +++ b/gromacs.spec @@ -1,5 +1,5 @@ %global git 1 -%global commit d6e35c96ceeb552afeeec4655567af2945994958 +%global commit d44d7d6bebdb7fa52090b744854d49f34099e044 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %ifnarch s390 s390x @@ -7,9 +7,8 @@ %else %global with_openmpi 0 %endif -# hopefully armv7hl will be available soon # https://bugzilla.redhat.com/show_bug.cgi?id=1324438 -%ifnarch aarch64 armv7hl ppc64 ppc64le s390 s390x +%ifnarch aarch64 %{power64} s390 s390x %global with_opencl 1 %else %global with_opencl 0 @@ -19,11 +18,8 @@ %ifarch x86_64 %global simd SSE2 %endif -# doesn't compile at the moment due to usage of vec_mul which is VSX-only -# http://redmine.gromacs.org/issues/1812 -# also, not all Fedora-supported CPUs have AltiVec -%ifarch ppc64 -#%%global simd IBM_VMX +%ifarch ppc64p7 +%global simd IBM_VMX %endif %ifarch ppc64le %global simd IBM_VSX @@ -37,7 +33,7 @@ Name: gromacs Version: 2016 -Release: 0.3.20160403git%{shortcommit}%{?dist} +Release: 0.4.20160510git%{shortcommit}%{?dist} Summary: Fast, Free and Flexible Molecular Dynamics License: GPLv2+ URL: http://www.gromacs.org @@ -61,6 +57,7 @@ Source6: gromacs-README.fedora # https://bugzilla.redhat.com/show_bug.cgi?id=1203754 Patch0: gromacs-dssp-path.patch # use system lmfit +# http://redmine.gromacs.org/issues/1957 Patch2: gromacs-use-system-lmfit.patch # fix building documentation Patch3: gromacs-sphinx-no-man.patch @@ -78,7 +75,6 @@ BuildRequires: boost-devel BuildRequires: fftw-devel BuildRequires: gsl-devel BuildRequires: hwloc-devel -BuildRequires: libxml2-devel BuildRequires: libX11-devel %if 0%{?fedora} > 23 BuildRequires: lmfit-devel >= 6.0 @@ -88,9 +84,12 @@ BuildRequires: motif-devel BuildRequires: ocl-icd-devel BuildRequires: opencl-headers # use CPU-based OpenCL implementation for build -BuildRequires: pocl +BuildRequires: pocl >= 0.13-4 Recommends: gromacs-opencl = %{version}-%{release} %endif +# cannot unbundle due to https://bugzilla.redhat.com/show_bug.cgi?id=1202166 +# RFE filed upstream as well: http://redmine.gromacs.org/issues/1956 +#BuildRequires: tinyxml2-devel >= 3.0.0 BuildRequires: tng-devel # To get rid of executable stacks BuildRequires: /usr/bin/execstack @@ -186,6 +185,7 @@ programs. %package libs Summary: GROMACS shared libraries +Provides: bundled(tinyxml2) = 3.0.0 %description libs GROMACS is a versatile and extremely well optimized package to perform @@ -290,10 +290,10 @@ rm -r src/external/lmfit %ifarch i686 %patch4 -p1 -b .i686 %endif -%ifarch aarch64 armv7hl +%ifarch aarch64 armv7hl armv7hnl %patch5 -p1 -b .hwloc-arm %endif -%ifarch armv7hl +%ifarch armv7hl armv7hnl %patch6 -p1 -b .arm %endif # Delete bundled stuff so that it doesn't get used accidentally @@ -518,6 +518,12 @@ done %{_bindir}/GMXRC.csh %changelog +* Sun Apr 10 2016 Dominik 'Rathann' Mierzejewski - 2016-0.4.20160510gitd44d7d6 +- update from git master +- enable OpenCL on armv7hl and BR: pocl >= 0.13-4 (#1324438) +- drop libxml2 BR (upstream switched to bundled tinyxml2-3.0.0) +- add missing arches in arch-dependent sections + * Wed Apr 06 2016 Dominik 'Rathann' Mierzejewski - 2016-0.3.20160403gitd6e35c9 - re-enable OpenCL (pocl was fixed recently) diff --git a/sources b/sources index b5060b2..26db256 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -3d4ccfc8080374c1b6cf0848f57590e1 gromacs-d6e35c96ceeb552afeeec4655567af2945994958.tar.gz +1538ee996d3ff1d9723963f90b10d62a gromacs-d44d7d6bebdb7fa52090b744854d49f34099e044.tar.gz