From 862ce517ce96c26c11825c691607ddeb3c36c164 Mon Sep 17 00:00:00 2001
From: Bernhard Kaindl <43588962+bernhardkaindl@users.noreply.github.com>
Date: Tue, 12 Oct 2021 19:39:09 +0200
Subject: gromacs: @2018:2020: add #include <limits> for newer %gcc builds
 (#26678)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

gromacs@2018:2020.6 is fixed to build with gcc@11.2.0
by adding #include <limits> to a few header files.

Thanks to Maciej Wójcik <w8jcik@gmail.com> for testing versions.
---
 var/spack/repos/builtin/packages/gromacs/package.py | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

(limited to 'var')

diff --git a/var/spack/repos/builtin/packages/gromacs/package.py b/var/spack/repos/builtin/packages/gromacs/package.py
index defd362c95..aeb2da8c3e 100644
--- a/var/spack/repos/builtin/packages/gromacs/package.py
+++ b/var/spack/repos/builtin/packages/gromacs/package.py
@@ -172,6 +172,20 @@ class Gromacs(CMakePackage):
         relative_root=os.path.join('share', 'cmake', 'gromacs'))
 
     def patch(self):
+        # Otherwise build fails with GCC 11 (11.2)
+        if self.spec.satisfies('@2018:2020.6'):
+            filter_file('#include <vector>', '#include <vector>\n#include <limits>',
+                        'src/gromacs/awh/biasparams.h')
+        if self.spec.satisfies('@2018:2018.8'):
+            filter_file('#include <vector>', '#include <vector>\n#include <limits>',
+                        'src/gromacs/mdlib/minimize.cpp')
+        if self.spec.satisfies('@2019:2019.6,2020:2020.6'):
+            filter_file('#include <vector>', '#include <vector>\n#include <limits>',
+                        'src/gromacs/mdrun/minimize.cpp')
+        if self.spec.satisfies('@2020:2020.6'):
+            filter_file('#include <queue>', '#include <queue>\n#include <limits>',
+                        'src/gromacs/modularsimulator/modularsimulator.h')
+
         if '+plumed' in self.spec:
             self.spec['plumed'].package.apply_patch(self)
 
-- 
cgit v1.2.3-70-g09d2