Preparing a Registered hc-file-bundle (Was Bootstrapping with HCfiles)

Simon Marlow simonmar at microsoft.com
Wed Dec 14 04:40:05 EST 2005


On 13 December 2005 11:05, Andrew Walrond wrote:

> On the HOST
> -----------------
> 
> Unpack src tree, and cd into it.
> 
> Configure with necessary options
> 	$ ./configure --prefix=...
> 
> Section 10.2.1'Cross-compiling to produce an unregisterised GHC' in
> the build manual suggests creating an mk/build.mk with following
> 	contents: GhcUnregisterised = YES
> 	GhcLibHcOpts = -O -fvia-C -keep-hc-files
> 	GhcRtsHcOpts = -keep-hc-files
> 	GhcLibWays =
> 	SplitObjs = NO
> 	GhcWithNativeCodeGen = NO
> 	GhcWithInterpreter = NO
> 	GhcStage1HcOpts = -O
> 	GhcStage2HcOpts = -O -fvia-C -keep-hc-files
> 	SRC_HC_OPTS += -H32m
> 	GhcBootLibs = YES
> Reading between the lines somewhat, for a full registered version we
> might need something like
> 	GhcUnregisterised = NO
> 	GhcLibHcOpts = -O -fvia-C -keep-hc-files
> 	GhcRtsHcOpts = -keep-hc-files
> 	GhcLibWays =
> 	SplitObjs = NO
> 	GhcWithNativeCodeGen = YES
> 	GhcWithInterpreter = YES
> 	GhcStage1HcOpts = -O
> 	GhcStage2HcOpts = -O -fvia-C -keep-hc-files
> 	SRC_HC_OPTS += -H32m
> 	GhcBootLibs = YES
> Advice on this bit gratefully received!

This should be fine, except that you can leave out some of it - you
probably want the default settings for GhcWithNativeCodeGen and
GhcWithInterpreter, and the GhcUnregisterised should default to NO.

> The manual next suggests copying some target generated include files
> into the host ghc source, but since they are the same I guess we can
> ignore that bit. 
> 
> Now building exactly as described in the manual:
> 
> 	$ pushd glafp-utils && make boot && make && popd
> 	$ pushd ghc && make boot && make && popd
> 
> Manual suggests the build might fail in RTS, but probably not for our
> registered version ?

building the RTS should work, yes.

> 	$ pushd libraries && make boot && make && popd
> 	$ pushd ghc/compiler && make boot stage=2 && make stage=2 &&
popd
> 
> 	$ pushd ghc/lib/compat
> 	$ make clean
> 	$ rm .depend
> 	$ make boot UseStage1=YES
> 	$ make -k UseStage1=YES EXTRA_HC_OPTS='-O -fvia-C
-keep-hc-files'
> 	$ popd
> 	$ pushd ghc/utils
> 	$ make clean
> 	$ make -k UseStage1=YES EXTRA_HC_OPTS='-O -fvia-C
-keep-hc-files'
> 	$ popd
> 	$ make hc-file-bundle Project=Ghc
> 
> That should provide us with our hc-file-bundle, *-hc.tar.gz
> 
> On the TARGET
> --------------------
> 
> Unpack src tree, unpack the hc file bundle on top of it.
> Cd into the src tree.
> 
> Now it should be a simple matter of
> 	$ distrib/hc-build --prefix=dir
> 	$ make install

Looks good!

Cheers,
	Simon


More information about the Glasgow-haskell-users mailing list