summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorChuck Atkins <chuck.atkins@kitware.com>2021-02-11 10:35:51 -0500
committerGitHub <noreply@github.com>2021-02-11 16:35:51 +0100
commita57598defe119bcd1e7c564ddec6fe8f3705ed4b (patch)
treed3dfdc4f39d5b1567e29ca667f57065e03be699f /var
parente2084ea6fd3445553e597d469a983b300df8dcce (diff)
downloadspack-a57598defe119bcd1e7c564ddec6fe8f3705ed4b.tar.gz
spack-a57598defe119bcd1e7c564ddec6fe8f3705ed4b.tar.bz2
spack-a57598defe119bcd1e7c564ddec6fe8f3705ed4b.tar.xz
spack-a57598defe119bcd1e7c564ddec6fe8f3705ed4b.zip
doxygen: fix gcc getting stuck in an infinite loop (#21614)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/doxygen/gcc-partial-inlining-bug.patch14
-rw-r--r--var/spack/repos/builtin/packages/doxygen/package.py3
2 files changed, 17 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/doxygen/gcc-partial-inlining-bug.patch b/var/spack/repos/builtin/packages/doxygen/gcc-partial-inlining-bug.patch
new file mode 100644
index 0000000000..13d0a78e80
--- /dev/null
+++ b/var/spack/repos/builtin/packages/doxygen/gcc-partial-inlining-bug.patch
@@ -0,0 +1,14 @@
+--- a/src/CMakeLists.txt 2021-02-10 22:55:14.766411242 -0500
++++ b/src/CMakeLists.txt 2021-02-10 23:10:17.651541580 -0500
+@@ -305,6 +305,11 @@
+ xmldocvisitor.cpp
+ xmlgen.cpp
+ )
++# Work aroung for GCC bug getting stuck in an infinite loop
++if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
++set_source_files_properties(doxygen.cpp PROPERTIES COMPILE_FLAGS -fno-partial-inlining)
++endif()
++
+ add_sanitizers(doxymain)
+
+ # LLVM/clang headers give a lot of warnings with -Wshadow and -Wcast-align so we disable them for
diff --git a/var/spack/repos/builtin/packages/doxygen/package.py b/var/spack/repos/builtin/packages/doxygen/package.py
index bac517bbb2..85ec0061c0 100644
--- a/var/spack/repos/builtin/packages/doxygen/package.py
+++ b/var/spack/repos/builtin/packages/doxygen/package.py
@@ -75,6 +75,9 @@ class Doxygen(CMakePackage):
# Also - https://github.com/doxygen/doxygen/pull/6588
patch('shared_ptr.patch', when='@1.8.14')
+ # Workaround for gcc getting stuck in an infinite loop
+ patch('gcc-partial-inlining-bug.patch', when='@1.8.20: %gcc@7')
+
def patch(self):
if self.spec['iconv'].name == 'libc':
return