summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'games-strategy')
-rw-r--r--games-strategy/freeorion/ChangeLog10
-rw-r--r--games-strategy/freeorion/files/remove_cruft_EffectParser.cpp.patch29
-rw-r--r--games-strategy/freeorion/freeorion-9999-r8.ebuild (renamed from games-strategy/freeorion/freeorion-9999-r7.ebuild)4
3 files changed, 43 insertions, 0 deletions
diff --git a/games-strategy/freeorion/ChangeLog b/games-strategy/freeorion/ChangeLog
index 2626db8..de72961 100644
--- a/games-strategy/freeorion/ChangeLog
+++ b/games-strategy/freeorion/ChangeLog
@@ -2,6 +2,16 @@
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
+*freeorion-9999-r8 (20 Apr 2012)
+
+ 20 Apr 2012; Sven Eden <sven.eden@gmx.de>
+ +freeorion-9999-r8.ebuild,
+ -freeorion-9999-r7.ebuild:
+ gcc-4.6.2 crashes on EffectParser.cpp which preprocesses into a
+ 275,320 lines sized file. Two includes that add a huge amount
+ of files are unnecessary and are patched away now, reducing the
+ size by over 80,000 lines. Now it can be compiled with gcc-4.6.2.
+
*freeorion-9999-r7 (19 Apr 2012)
19 Apr 2012; Sven Eden <sven.eden@gmx.de>
diff --git a/games-strategy/freeorion/files/remove_cruft_EffectParser.cpp.patch b/games-strategy/freeorion/files/remove_cruft_EffectParser.cpp.patch
new file mode 100644
index 0000000..b4454dd
--- /dev/null
+++ b/games-strategy/freeorion/files/remove_cruft_EffectParser.cpp.patch
@@ -0,0 +1,29 @@
+--- FreeOrion/parse/EffectParser.cpp 2012-04-20 13:12:33.892274619 +0200
++++ FreeOrion/parse/EffectParser.cpp 2012-04-20 12:54:54.382219385 +0200
+@@ -5,18 +5,22 @@
+ #include "Label.h"
+ #include "ValueRefParser.h"
+ #include "../universe/Effect.h"
+-#include "../universe/ValueRef.h"
++//#include "../universe/ValueRef.h"
+
+-#include <GG/ReportParseError.h>
+
+-#include <boost/spirit/home/phoenix.hpp>
++#define DEBUG_PARSERS 0
++
++#if DEBUG_PARSERS
++# include <GG/ReportParseError.h>
++#endif
+
+
++#include <boost/spirit/home/phoenix.hpp>
++
+ namespace qi = boost::spirit::qi;
+ namespace phoenix = boost::phoenix;
+
+
+-#define DEBUG_PARSERS 0
+
+ namespace {
+ struct effect_parser_rules {
diff --git a/games-strategy/freeorion/freeorion-9999-r7.ebuild b/games-strategy/freeorion/freeorion-9999-r8.ebuild
index 6afdfdc..4869280 100644
--- a/games-strategy/freeorion/freeorion-9999-r7.ebuild
+++ b/games-strategy/freeorion/freeorion-9999-r8.ebuild
@@ -43,6 +43,10 @@ src_prepare() {
sed -i -e \
"s:svn_revision_number ???:svn_revision_number ${ESVN_WC_REVISION}:" \
FreeOrion/CMakeLists.txt || die "sed FreeOrion/CMakeLists.txt failed"
+
+ # gcc-4.6.2 crashes with an internal segfault on EffectParser.cpp
+ # Solution: remove those includes, that are way too much.
+ epatch "${FILESDIR}/remove_cruft_EffectParser.cpp.patch
}
src_configure() {