commit: 725c067ee23c5a007d9d282423f170cc3660fdca Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org> AuthorDate: Tue May 23 20:58:12 2017 +0000 Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org> CommitDate: Tue May 23 21:15:48 2017 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=725c067e
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 dev-lang/ghc/files/ghc-8.0.2-O2-unreg.patch | 35 +++++++++++++++++++++++++++++ dev-lang/ghc/ghc-8.0.2.ebuild | 1 + 2 files changed, 36 insertions(+) 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 00000000000..b64d65b80a0 --- /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 diff --git a/dev-lang/ghc/ghc-8.0.2.ebuild b/dev-lang/ghc/ghc-8.0.2.ebuild index 5dc0277ec6f..6ca4874cefe 100644 --- a/dev-lang/ghc/ghc-8.0.2.ebuild +++ b/dev-lang/ghc/ghc-8.0.2.ebuild @@ -459,6 +459,7 @@ src_prepare() { epatch "${FILESDIR}"/${PN}-8.0.1-par-g0-on-A32.patch epatch "${FILESDIR}"/${PN}-8.0.2_rc2-old-sphinx.patch epatch "${FILESDIR}"/${PN}-8.0.2-libffi-alpha.patch + epatch "${FILESDIR}"/${PN}-8.0.2-O2-unreg.patch if use prefix; then # Make configure find docbook-xsl-stylesheets from Prefix