summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2017-05-23 21:58:12 +0100
committerSergei Trofimovich <slyfox@gentoo.org>2017-05-23 22:15:48 +0100
commit725c067ee23c5a007d9d282423f170cc3660fdca (patch)
tree566c79375757d8401459cecffdc83aa8c686fd2c /dev-lang/ghc/files
parentmedia-plugins/audacious-plugins: bug fix for #596444 and possibly others (diff)
downloadgentoo-725c067ee23c5a007d9d282423f170cc3660fdca.tar.gz
gentoo-725c067ee23c5a007d9d282423f170cc3660fdca.tar.bz2
gentoo-725c067ee23c5a007d9d282423f170cc3660fdca.zip
dev-lang/ghc: restore HCFLAGS=-O1 for UNREG arches
This fix is primary to restore ia64 support. But in general it speeds GHC build up substantially: from 10+ hours down to 3.5 hours. Package-Manager: Portage-2.3.6, Repoman-2.3.2
Diffstat (limited to 'dev-lang/ghc/files')
-rw-r--r--dev-lang/ghc/files/ghc-8.0.2-O2-unreg.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/dev-lang/ghc/files/ghc-8.0.2-O2-unreg.patch b/dev-lang/ghc/files/ghc-8.0.2-O2-unreg.patch
new file mode 100644
index 000000000000..b64d65b80a05
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-8.0.2-O2-unreg.patch
@@ -0,0 +1,35 @@
+ghc -O2 generates too large C files for unregisterised compiler.
+On ia64 it causes DynFlags to compile for 60 minutes (then assembler
+crashes).
+
+To decrease C code inflation we don't use -O2 in UNREG mode.
+diff --git a/mk/config.mk.in b/mk/config.mk.in
+index bfaaa66..d8f93b3 100644
+--- a/mk/config.mk.in
++++ b/mk/config.mk.in
+@@ -72,11 +72,2 @@ GhcStage3HcOpts=-O2
+
+-# Disable -O2 optimization. Otherwise amount of generated C code
+-# makes things very slow to compile (~5 minutes on core-i7 for 'compiler/hsSyn/HsExpr.lhs')
+-# and sometimes not compile at all (powerpc64 overflows something
+-# on 'compiler/hsSyn/HsExpr.lhs').
+-ifeq "$(GhcUnregisterised)" "YES"
+-GhcStage1HcOpts=
+-GhcStage2HcOpts=
+-GhcStage3HcOpts=
+-endif
+
+@@ -894 +885,13 @@ CURSES_INCLUDE_DIRS = @CURSES_INCLUDE_DIRS@
+ CURSES_LIB_DIRS = @CURSES_LIB_DIRS@
++
++# Disable -O2 optimization. Otherwise amount of generated C code
++# makes things very slow to compile (~5 minutes on core-i7 for 'compiler/hsSyn/HsExpr.lhs')
++# and sometimes not compile at all (powerpc64 overflows something
++# on 'compiler/hsSyn/HsExpr.lhs').
++ifeq "$(GhcUnregisterised)" "YES"
++GhcStage1HcOpts=
++GhcStage2HcOpts=
++GhcStage3HcOpts=
++
++GhcLibHcOpts=
++endif