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))