diff options
Diffstat (limited to 'dev-lang/ghc/files/ghc-8.0.2-O2-unreg.patch')
-rw-r--r-- | dev-lang/ghc/files/ghc-8.0.2-O2-unreg.patch | 35 |
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 |