
I'm trying to build GHC from source. But the ghc repository at http://darcs.haskell.org/ghc seems to be missing "ghc/lib/compat/Cabal"?

On 2/28/06, Ashley Yakeley
I'm trying to build GHC from source. But the ghc repository at http://darcs.haskell.org/ghc seems to be missing "ghc/lib/compat/Cabal"?
Did you run 'sh darcs-all get'? -- Friendly, Lemmih

Lemmih wrote:
Did you run 'sh darcs-all get'?
Oh, that wasn't in the README. Thanks. But now I get this: /usr/bin/ghc -H16m -O -I. -Iinclude -Rghc-timing -I../../../libraries -fglasgow-exts -no-recomp -c System/Directory/Internals.hs -o System/Directory/Internals.o -ohi System/Directory/Internals.hi System/Directory/Internals.hs:1:0: Module `System.Directory.Internals' is a member of package base-1.0. To compile this module, please use -ignore-package base-1.0. I'm using GHC 6.4.

Ashley Yakeley wrote:
Lemmih wrote:
Did you run 'sh darcs-all get'?
Oh, that wasn't in the README. Thanks. But now I get this:
/usr/bin/ghc -H16m -O -I. -Iinclude -Rghc-timing -I../../../libraries -fglasgow-exts -no-recomp -c System/Directory/Internals.hs -o System/Directory/Internals.o -ohi System/Directory/Internals.hi
System/Directory/Internals.hs:1:0: Module `System.Directory.Internals' is a member of package base-1.0. To compile this module, please use -ignore-package base-1.0.
I'm using GHC 6.4.
The configure script has mis-detected your GHC version somehow. Could you look through the output of configure, and see what it says about GHC? Also look in mk/config.mk, at the value of GhcCanonVersion. Maybe you switched GHC versions but didn't reconfigure? Cheers, Simon

Simon Marlow wrote:
The configure script has mis-detected your GHC version somehow. Could you look through the output of configure, and see what it says about GHC?
Nothing special: checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking target system type... i686-pc-linux-gnu Canonicalised to: i386-unknown-linux checking for path to top of build tree... /home/ashley/Projects/Collected/Haskell/ghc checking for ghc... /usr/bin/ghc checking version of ghc... 6.4 checking for nhc... no checking for nhc98... no checking for hbc... no
Also look in mk/config.mk, at the value of GhcCanonVersion.
GHC = /usr/bin/ghc GhcDir = $(dir $(GHC)) GhcVersion = 6.4 GhcMajVersion = 6 GhcMinVersion = 4 GhcPatchLevel = 0 # Canonicalised ghc version number, used for easy (integer) version # comparisons. We must expand $(GhcMinVersion) to two digits by # adding a leading zero if necessary: ifneq "$(findstring $(GhcMinVersion), 0 1 2 3 4 5 6 7 8 9)" "" GhcCanonVersion = $(GhcMajVersion)0$(GhcMinVersion) else GhcCanonVersion = $(GhcMajVersion)$(GhcMinVersion) endif
Maybe you switched GHC versions but didn't reconfigure?
I think the problem is that I called autoconf etc. before I called darcs-all get, but not after. Calling autoreconf fixed the problem. -- Ashley Yakeley

Ashley Yakeley wrote:
Lemmih wrote:
Did you run 'sh darcs-all get'?
Oh, that wasn't in the README. Thanks.
The instructions for getting GHC by darcs are here: http://cvs.haskell.org/trac/ghc/wiki/GhcDarcs It looks like you expected to build GHC by grabbing the darcs repo and reading the README file - that isn't a route I anticipated :-) I'll make sure the README gets updated at some point. Cheers, Simon

Simon Marlow wrote:
It looks like you expected to build GHC by grabbing the darcs repo and reading the README file - that isn't a route I anticipated :-) I'll make sure the README gets updated at some point.
Thanks. Now the build process gets stuck here: ------------------------------------------------------------------------ ==fptools== make all -wr -f Makefile; in /home/ashley/Projects/Collected/Haskell/ghc/libraries/base ------------------------------------------------------------------------ rm -f GHC/Base.o; if [ ! -d GHC/Base_split ]; then mkdir GHC/Base_split; else /usr/bin/find GHC/Base_split -name '*.o' -print | xargs rm -f __rm_food; fi; ../../ghc/compiler/ghc-inplace -H16m -O -fglasgow-exts -cpp -Iinclude -"#include" HsBase.h -funbox-strict-fields -ignore-package base -O -Rghc-timing -fgenerics -fgenerics -split-objs -c GHC/Base.lhs -o GHC/Base.o -ohi GHC/Base.hi The compiler just sits and does nothing for hours. It doesn't even use any CPU, it seems to be just waiting for something (in state "S+" according to ps). I tried running the command with -H64m, but that didn't help. With -v it gives this: Glasgow Haskell Compiler, Version 6.5, for Haskell 98, compiled by GHC version 6.4 Using package config file: /home/ashley/Projects/Collected/Haskell/ghc/ghc/driver/package.conf.inplace Using package config file: /home/ashley/.ghc/i386-linux-6.5/package.conf package haskell98-1.0 will be ignored due to missing dependencies: base-1.0 package template-haskell-1.0 will be ignored due to missing dependencies: base-1.0 package unix-1.0 will be ignored due to missing dependencies: base-1.0 package Cabal-1.1.4 will be ignored due to missing dependencies: base-1.0 package parsec-2.0 will be ignored due to missing dependencies: base-1.0 package haskell-src-1.0 will be ignored due to missing dependencies: base-1.0 package network-1.0 will be ignored due to missing dependencies: base-1.0 package QuickCheck-1.0 will be ignored due to missing dependencies: base-1.0 package HUnit-1.1 will be ignored due to missing dependencies: base-1.0 package mtl-1.0 will be ignored due to missing dependencies: base-1.0 package fgl-5.2 will be ignored due to missing dependencies: base-1.0 package stm-1.0 will be ignored due to missing dependencies: base-1.0 package readline-1.0 will be ignored due to missing dependencies: base-1.0 Hsc static flags: -static *** Literate pre-processor: /home/ashley/Projects/Collected/Haskell/ghc/ghc/utils/unlit/unlit -h GHC/Base.lhs GHC/Base.lhs /tmp/ghc28900_0.lpp *** C pre-processor: gcc -E -undef -traditional -v -I include -I /home/ashley/Projects/Collected/Haskell/ghc/ghc/includes -D__HASKELL1__=5 -D__GLASGOW_HASKELL__=605 -D__HASKELL98__ -D__CONCURRENT_HASKELL__ -Dlinux_BUILD_OS=1 -Di386_BUILD_ARCH=1 -Dlinux_HOST_OS=1 -Di386_HOST_ARCH=1 -x c /tmp/ghc28900_0.lpp -o /tmp/ghc28900_0.hscpp Using built-in specs. Target: i486-linux-gnu Configured with: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --with-gxx-include-dir=/usr/include/c++/4.0.2 --enable-shared --with-system-zlib --libexecdir=/usr/lib --enable-nls --without-included-gettext --enable-threads=posix --program-suffix=-4.0 --enable-__cxa_atexit --enable-libstdcxx-allocator=mt --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-gc=boehm --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --disable-werror --enable-checking=release i486-linux-gnu Thread model: posix gcc version 4.0.2 20050808 (prerelease) (Ubuntu 4.0.1-4ubuntu9) /usr/lib/gcc/i486-linux-gnu/4.0.2/cc1 -E -traditional-cpp -quiet -v -I include -I /home/ashley/Projects/Collected/Haskell/ghc/ghc/includes -D__HASKELL1__=5 -D__GLASGOW_HASKELL__=605 -D__HASKELL98__ -D__CONCURRENT_HASKELL__ -Dlinux_BUILD_OS=1 -Di386_BUILD_ARCH=1 -Dlinux_HOST_OS=1 -Di386_HOST_ARCH=1 /tmp/ghc28900_0.lpp -o /tmp/ghc28900_0.hscpp -mtune=i486 -undef ignoring nonexistent directory "/usr/local/include/i486-linux-gnu" ignoring nonexistent directory "/usr/include/i486-linux-gnu" #include "..." search starts here: #include <...> search starts here: include /home/ashley/Projects/Collected/Haskell/ghc/ghc/includes /usr/local/include /usr/lib/gcc/i486-linux-gnu/4.0.2/include /usr/include End of search list. *** Checking old interface for GHC.Base: *** Parser: *** Renamer/typechecker: *** Desugar: Result size = 2851 *** Simplify: It stops and waits there. This is my machine: $ uname -a Linux rollright 2.6.12-10-386 #1 Mon Feb 13 12:13:15 UTC 2006 i686 GNU/Linux
participants (4)
-
Ashley Yakeley
-
Lemmih
-
Simon Marlow
-
Wolfgang Thaller