[Haskell-cafe] Build local-gc branch of GHC

Andreas Voellmy andreas.voellmy at gmail.com
Mon Sep 26 20:18:51 CEST 2011


Hi,

I've been trying to get and build a branch of ghc that includes the new
local GC algorithm (
http://www.haskell.org/pipermail/cvs-ghc/2011-June/062748.html), but I
haven't been able to build it successfully. Here is what I've done:

1. Got the latest source tree using these commands:

$ git clone http://darcs.haskell.org/ghc.git/
$ cd ghc
$ ./sync-all --testsuite get

2. Use 'fingerprint'  script to get the state of the repository for the
branch mentioned in the web page I mentioned above. A fingerprint file based
on the announcement above fails due to some problem with binary and haddock
change sets not being found. So I modified the fingerprint to use the latest
versions for binary and deleted the change for haddock entirely. I ran this
command:

./utils/fingerprint/fingerprint.py restore -f local-gc.fp

and my local-gc.fp fingerprint file contains this:

.|ab5aad587de8e3d9dde539982ae728b33e5bca50
ghc-tarballs|e7b7b152083f7c3e3559e557a239757d41ac02a6
libraries/Cabal|6f01f56a2702b50e2da909566c4a01622cb2ca7f
libraries/Win32|0cf603103e9ad3fccd862171ba5e689b87930622
libraries/array|e4b4e2e0a79f4138bdff4f10d263436b0155f449
libraries/base|be2750a0a11b919fb03cc070074e430f88bdfa90
libraries/binary|376797487651cf995bd52458ce1f7d7a283341b3
libraries/bytestring|cab9d8566fba8611598f14fb4f2ac7b8d4aae75b
libraries/containers|592f6d9da9090e8d53432f22a01bb117fea2246c
libraries/deepseq|91e8a93b15ed32af3941f81e927291a023feb369
libraries/directory|3a0f2e2cb94c3e4f346023acc7201409d2876ed8
libraries/extensible-exceptions|a667b48d0cb6469b6611cb516d16836aa002e782
libraries/filepath|92d211a2752fe8827582ae0d97efd18722ad3d87
libraries/ghc-prim|7fcfc880853fa399c9468049aeb14e6eadb9eae5
libraries/haskeline|125ee5bba59fa9ac2fd77aa3922c30dffc11b7b5
libraries/haskell2010|f90687bee55adfd693fe460f2ab4bc270a7f97e3
libraries/haskell98|eb655b0317665acb9670025480b4af4465bc8f55
libraries/hoopl|0febb7f04ff4326bd120fc75549845e5e9678d72
libraries/hpc|fce8babbc3f60fb195d84545753dc342422ab8e1
libraries/integer-gmp|2567c97aaa467cb676a6ecc2cf840c92ee1cb6ec
libraries/integer-simple|c3e9c0268b4d59895829e429d1ac767e6041b06a
libraries/mtl|a748dfa2770af1d348dfaa8ad6955b25b4935711
libraries/old-locale|7f09f55ea3011c17c526805f099394a05ec9c3fe
libraries/old-time|6aae8dc2f13cef6ab48c5436c6c0e7c1b5ae3f51
libraries/parallel|f82611fac439236e22a057cd555bb9fe393597b0
libraries/pretty|e00aa7e0f82fc6f13ad85f1b3a27f53efe473e60
libraries/process|d1c2999473ba0d4ceafdc6da309debca83f91abe
libraries/random|ba8cb1b9fdfddeb29fdfedd8612c8ce85a987af8
libraries/stm|ccc6d74872916e5de7747df4cc61f64de64be591
libraries/template-haskell|acd4c3292d0f7a222a1f4f426054e4732a809fc8
libraries/terminfo|f4476f1881085b74dbe65cf4a4561e8fb34017d4
libraries/unix|c9a0bf119ce343b291bef77828066339e94fb64d
libraries/utf8-string|d28cd1fbd4ebaaa0608c070bd02ed72dc9b70399
libraries/xhtml|9a4d7d64d0491a1844d5b5759275b029ccd1e2cd
nofib|6d3ea16e56bd99d060e778fab3583aa67a6b50d4
testsuite|6560613138d61afddd0d8d428254370f8dfdb4cd
utils/hsc2hs|c46eed44ce96f1719334ffb190eddf63695bc553

3. I then run

$perl boot
$./configure

This succeeds telling me that it will be building ghc version 7.1.20110606.

4. Run make and it fails with this output:

+ test -f mk/config.mk.old
+ cp -p mk/config.mk mk/config.mk.old
touch -r mk/config.mk.old mk/config.mk
+ test -f mk/project.mk.old
+ cp -p mk/project.mk mk/project.mk.old
touch -r mk/project.mk.old mk/project.mk
+ test -f compiler/ghc.cabal.old
+ cp -p compiler/ghc.cabal compiler/ghc.cabal.old
touch -r compiler/ghc.cabal.old compiler/ghc.cabal
===--- building phase 0
make -r --no-print-directory -f ghc.mk phase=0 phase_0_builds
libraries/dph/ghc.mk:116: *** dph_th_deps(v,seq):
libraries/dph/dph-base_dist-install_GHCI_LIB not defined!.  Stop.
make: *** [all] Error 2

5. I don't know how to fix this, so I tried deleting libraries/dph. Then I
run make again, and get a ways through the build, and then get this error:

"inplace/bin/ghc-stage1" -M -dep-makefile
libraries/vector/dist-install/build/.depend-v-p-dyn.haskell.tmp -dep-suffix
p -dep-suffix dyn -include-pkg-deps -H32m -O -package-name vector-0.8
-hide-all-packages -i -ilibraries/vector/.
-ilibraries/vector/dist-install/build
-ilibraries/vector/dist-install/build/autogen
-Ilibraries/vector/dist-install/build
-Ilibraries/vector/dist-install/build/autogen -Ilibraries/vector/include
-Ilibraries/vector/internal -optP-DVECTOR_BOUNDS_CHECKS -optP-include
-optPlibraries/vector/dist-install/build/autogen/cabal_macros.h -package
base-4.3.1.0 -package primitive-0.4.0.1 -O2 -XHaskell98 -XCPP
-XDeriveDataTypeable -O2 -no-user-package-conf -rtsopts -odir
libraries/vector/dist-install/build -hidir
libraries/vector/dist-install/build -stubdir
libraries/vector/dist-install/build -hisuf hi -osuf o -hcsuf hc
 libraries/vector/./Data/Vector/Internal/Check.hs
 libraries/vector/./Data/Vector/Fusion/Util.hs
 libraries/vector/./Data/Vector/Fusion/Stream/Size.hs
 libraries/vector/./Data/Vector/Fusion/Stream/Monadic.hs
 libraries/vector/./Data/Vector/Fusion/Stream/Monadic/Safe.hs
 libraries/vector/./Data/Vector/Fusion/Stream.hs
 libraries/vector/./Data/Vector/Fusion/Stream/Safe.hs
 libraries/vector/./Data/Vector/Generic/Mutable.hs
 libraries/vector/./Data/Vector/Generic/Mutable/Safe.hs
 libraries/vector/./Data/Vector/Generic/Base.hs
 libraries/vector/./Data/Vector/Generic/New.hs
 libraries/vector/./Data/Vector/Generic/New/Safe.hs
 libraries/vector/./Data/Vector/Generic.hs
 libraries/vector/./Data/Vector/Generic/Safe.hs
 libraries/vector/./Data/Vector/Primitive/Mutable.hs
 libraries/vector/./Data/Vector/Primitive/Mutable/Safe.hs
 libraries/vector/./Data/Vector/Primitive.hs
 libraries/vector/./Data/Vector/Primitive/Safe.hs
 libraries/vector/./Data/Vector/Storable/Internal.hs
 libraries/vector/./Data/Vector/Storable/Mutable.hs
 libraries/vector/./Data/Vector/Storable.hs
 libraries/vector/./Data/Vector/Unboxed/Base.hs
 libraries/vector/./Data/Vector/Unboxed/Mutable.hs
 libraries/vector/./Data/Vector/Unboxed/Mutable/Safe.hs
 libraries/vector/./Data/Vector/Unboxed.hs
 libraries/vector/./Data/Vector/Unboxed/Safe.hs
 libraries/vector/./Data/Vector/Mutable.hs
 libraries/vector/./Data/Vector/Mutable/Safe.hs
 libraries/vector/./Data/Vector.hs  libraries/vector/./Data/Vector/Safe.hs

libraries/vector/Data/Vector/Fusion/Util.hs:4:14:
    Unsupported extension: Trustworthy
make[1]: *** [libraries/vector/dist-install/build/.depend-v-p-dyn.haskell]
Error 1
make: *** [all] Error 2

I deleted this library too, but my build errors just continued. After
resolving a bunch of build errors in Haskell libraries, I started getting
errors in the C files in the rts directory. While I could go on fixing these
problems, it seems likely that I went wrong somewhere early on. Does anyone
see where I went wrong? Did I use the various tools (git, sync-all,
fingerprint, boot, configure, make) in the right order and way?

Regards,
Andreas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20110926/08668eb6/attachment.htm>


More information about the Haskell-Cafe mailing list