Unreg/registerised hc booting success

Donald Bruce Stewart dons@cse.unsw.edu.au
Wed, 3 Sep 2003 18:08:32 +1000


igloo:
> On Wed, Sep 03, 2003 at 12:39:33PM +1000, Donald Bruce Stewart wrote:
> > 
> >     $ ghc/ghc-6.0.1/ghc/compiler/ghc-inplace                  
> >     ghc-6.0.1: no input files
> >     Usage: For basic information, try the `--help' option.
> > 
> >     $ ghc/ghc-6.0.1/ghc/compiler/ghc-inplace hello.hs 
> >     hello.hs:1:
> >         Failed to load interface for `Prelude':
> >             Could not find interface file for `Prelude'
> >             (use -v to see a list of the files searched for)
> > 
> > I'll solve this library thing, try and build a compiler. 
> > And then try a sparc. 
> 
> I have found that I need to copy the library/ .hi files across, although
> Simon Marlow seemed to think that should be unnecessary. Also,
> ghc/driver/package.conf.inplace seems to become the empty list; I
> haven't bothered to look into this as it's easy enough just to copy
> ghc/driver/package.conf.inplace.old over the top of it. This isn't
> following the new docs online so YMMV.

Exactly!

I tarred up the libraries/ .hi files on the host box:
        $ find libraries -name '*.hi'  -print > /tmp/f
        $ tar czf ghc-6.0.1-hi.tar.gz `cat /tmp/f`

copied them across, and untarred over the tree.  Also needed the
package.conf.in tweak. And I had to turn off "dl" in the
extra_libraries list of package.co.inplace (for FreeBSD).

Yay! A pretty straightforward cross-os bootstrap, from
i386-*-openbsd to i386-*-freebsd:

    $ cat hello.hs 
    import System.Info
    main = print System.Info.arch >> print System.Info.os

    $ ghc/ghc-6.0.1/ghc/compiler/ghc-inplace --numeric-version
    6.0.1

    $ ghc/ghc-6.0.1/ghc/compiler/ghc-inplace hello.hs

    $ % ./a.out 
    "i386"
    "freebsd"

I'll try a cross-processor port now.

Cheers,
    Don