[commit: ghc] master: split-obj: disable split-objects on Windows. (5364994)

git at git.haskell.org git at git.haskell.org
Tue Jul 17 00:47:54 UTC 2018


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/53649947223f197cf93e26393486f578d56c46c6/ghc

>---------------------------------------------------------------

commit 53649947223f197cf93e26393486f578d56c46c6
Author: Tamar Christina <tamar at zhox.com>
Date:   Mon Jul 16 20:04:04 2018 -0400

    split-obj: disable split-objects on Windows.
    
    A change has caused GHC to generate excessive specializations.
    This is making GHC generate 1800 splits for a simple GHC.Prim module,
    which means 1800 fork/exec calls.
    
    Due to this compilation times on Windows with split-objs on take over
    24 hours to complete depending on your disk speed.  Also the end
    compiler
    compiling medium to large project is also much slower.
    
    So I think we need to just disable split-objects. As there's nothing
    that
    can be done about this.
    
    Test Plan: ./validate
    
    Reviewers: bgamari
    
    Subscribers: tdammers, rwbarton, thomie, erikd, carter
    
    GHC Trac Issues: #15051
    
    Differential Revision: https://phabricator.haskell.org/D4915


>---------------------------------------------------------------

53649947223f197cf93e26393486f578d56c46c6
 configure.ac | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/configure.ac b/configure.ac
index ac464b6..2b05535 100644
--- a/configure.ac
+++ b/configure.ac
@@ -710,6 +710,12 @@ cygwin32|mingw32)
   else
     AC_PATH_PROG([PerlCmd],[perl])
   fi
+  # because of Trac #15051 SplitObjs is useless on Windows.  It regresses
+  # build times to days for a build, and this effect is also there for end users
+  # of GHC.  So unfortunately we have to disable it, even without having
+  # split-sections.  Though the compile time hit for split-sections should be
+  # tiny compared to this so maybe we should enable it for x86_64.
+  SplitObjsBroken=YES
   ;;
 *)
     AC_PATH_PROG([PerlCmd],[perl])



More information about the ghc-commits mailing list