bootstrapping GHC

Simon Marlow simonmar@microsoft.com
Tue, 16 Jan 2001 03:06:53 -0800


[ Moved to glasgow-haskell-users@haskell.org... ]

> I found the mailing list discussion on generating the hc boot 
> files and
> unregisterized code after a tip from Michael Weber and will eventually
> get around to trying to bootstrap on Linux/PPC.
> 
> On the other hand, I'm running into a bit of trouble on the 
> SPARC. It's
> actually an UltraSPARC (sparc64). My assumption was that 
> ordinary SPARC
> code should just run on it. What's actually happen is illegal 
> instructions
> everywhere. The one that seems to stop me dead cold every 
> time is here:
> 
> 00000000009c4cfc <PrelMain_mainIO_info>:
>   9c4cfc:   00 9c 4c f8     bn  10d80dc <_end+0x69bff4>
>   9c4d00:   00 00 00 00     unimp  0
>   9c4d04:   00 11 00 01     unimp  0x110001
> 
> and this is in hsc, which is as far into the bootstrap as I got.
> 
> This disassembly looks wrong to me. Perhaps asm mangling is needed; I
> had -fno-asm-mangling set because the assembler was barfing 
> on prologue
> nonsense. I'll be looking into that, as I'm not very familiar with the
> real guts of the compiler, or, for that matter, modern SPARC's.

If you're doing an unregisterised bootstrap, there shouldn't be any
problem with assembly mangling since you're just using the OS's native C
compiler (preferably gcc).  Although we do have one or two bits of
inline assembly which might be upsetting things: ASSIGN_DBL and PK_DBL
in ghc/includes/StgMacros.h spring to mind.

The PPC folks, particularly Atze Dijkstra <atze@cs.uu.nl> who did the
recent MacOS X port, have gone through the whole unregisterised
bootstrap process recently so they should be able to help.  Guys?

Cheers,
	Simon