split-obj: disable split-objects on Windows.
authorTamar Christina <tamar@zhox.com>
Tue, 17 Jul 2018 00:04:04 +0000 (20:04 -0400)
committerBen Gamari <ben@smart-cactus.org>
Tue, 17 Jul 2018 00:04:16 +0000 (20:04 -0400)
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

configure.ac

index ac464b6..2b05535 100644 (file)
@@ -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])