Hi,

As it appears that upstream is reluctant to consider it a bug in make (see 346248 for discussion), I started playing with ghc6 build system in an attempt to come up with a workaround. I was able to build it in under 3.5 hours on a 1.7GHz Pentium IV machine with the attached patch. For some targets it takes forever for make to parse the dependency graph of a large list of prerequisites, the patch just remakes these prerequisites one by one in three bottleneck places. The resulting ghc6 binary appears to work fine. The complete build log may be found at

http://www.wooyd.org/debian/ghc6/

Best regards,

Jurij Smakov                                        [EMAIL PROTECTED]
Key: http://www.wooyd.org/pgpkey/                   KeyID: C99E03CC
--- a/mk/target.mk      2005-03-09 02:28:13.000000000 -0800
+++ b/mk/target.mk      2006-02-25 16:11:37.000000000 -0800
@@ -234,7 +234,8 @@
 all :: $(HS_PROG)
 
 ifneq "$(BootingFromHc)" "YES"
-$(HS_PROG) :: $(OBJS)
+$(HS_PROG) :: 
+       for i in $(OBJS) ; do $(MAKE) -wr $${i} ; done
        $(HC) -o $@ $(HC_OPTS) $(LD_OPTS) $(OBJS)
 else
 # see bootstrap.mk
@@ -383,7 +384,8 @@
 # Note: $(STUBOBJS) isn't depended on here, but included when building the lib.
 #       (i.e., the assumption is that $(STUBOBJS) are created as a side-effect
 #       of building $(LIBOBJS)).
-$(LIBRARY) : $(LIBOBJS)
+$(LIBRARY) : 
+       for i in $(LIBOBJS) ; do $(MAKE) -wr $${i} ; done
        $(BUILD_LIB)
 endif # LIBRARY = ""
 
--- a/libraries/base/Makefile   2005-03-03 01:41:35.000000000 -0800
+++ b/libraries/base/Makefile   2006-02-26 13:02:53.000000000 -0800
@@ -134,7 +134,8 @@
 include $(TOP)/mk/target.mk
 
 ifeq "$(OBJECT_FILEFORMAT)" "PEi"
-HSbase.o : $(GHCI_LIBOBJS)
+HSbase.o :
+       for i in $(GHCI_LIBOBJS) ; do $(MAKE) -wr $${i} ; done
        $(LD) -r $(LD_X) -o HSbase1.o $(filter     GHC/%, $(GHCI_LIBOBJS))
        $(LD) -r $(LD_X) -o HSbase2.o $(filter     Text/%, $(GHCI_LIBOBJS))
        $(LD) -r $(LD_X) -o HSbase3.o $(filter-out GHC/% Text/%, 
$(GHCI_LIBOBJS) $(STUBOBJS))

Reply via email to