Prelude.hi seems to be unregisterised:

00000000  00 01 fa ce 00 00 12 1f  04 00 00 00 36 00 00 00
|............6...|
00000010  30 00 00 00 38 00 00 00  32 01 00 00 00 75 00 00
|0...8...2....u..|
00000020  12 1b 00 00 00 00 00 00  00 01 00 00 00 00 01 00
|................|

but compiler/stage1/ghc-inplace --info shows that the compiler is
registerised:

[sbox-CHINOOK_ARM2: ~/ghc] > ./compiler/stage1/ghc-inplace --info
 [("Project name","The Glorious Glasgow Haskell Compilation System")
 ,("Project version","6.8.2")
 ,("Booter version","6.8.2")
 ,("Stage","1")
 ,("Interface file version","6")
 ,("Have interpreter","NO")
 ,("Object splitting","NO")
 ,("Have native code generator","NO")
 ,("Support SMP","NO")
 ,("Unregisterised","NO")
 ,("Tables next to code","YES")
 ,("Win32 DLLs","")
 ,("RTS ways","debug    debug_p  ")
 ,("Leading underscore","NO")
 ]

So ghc seems to be writing the wrong information to the .hi file...  Any
idea why, or what I should look at that could be causing this?

Thanks,
Dusty

On 3/17/08, Ian Lynagh <[EMAIL PROTECTED]> wrote:
>
> On Mon, Mar 17, 2008 at 01:25:07AM -0400, Dustin DeWeese wrote:
> > I'm working on a registerised port of GHC 6.8.2 to an ARM CPU.
>
>
> Great!
>
>
> > After making the changes needed (listed in the 'Porting GHC' wiki page),
> I am trying to compile GHC.
> >
> > The build fails while compiling the stage 2 compiler with this error
> message:
> >
> > basicTypes/OccName.lhs-boot:1:0:
> >     Bad interface file: /home/dusty/deb-src2/ghc6-6.8.2
> /libraries/base/dist/build/Prelude.hi
> >         mismatched interface file ways: expected , found u
> >
> > I am pretty sure that Prelude is registerised because ghc-asm prints out
> some diagnostics while compiling it.
> >
> > Does anyone know what's going on or how I can fix it?  How can I check a
> .hi file to see if it is unregisterised?
>
>
> Hmm, ghc --show-iface doesn't seem to tell you.
>
> Here's the start of hexdump -C on an unregisterised Prelude.hi:
>
> 00000000  01 fa ce 64 00 00 00 00  00 00 18 7e 04 00 00 00
> |...d.......~....|
> 00000010  36 00 00 00 30 00 00 00  38 00 00 00 32 01 00 00
> |6...0...8...2...|
> 00000020  00 75 00 00 00 00 00 00  18 76 00 00 00 00 00 00
> |.u.......v......|
>
> The 01 (byte 30) after the version number is the length of the way
> string. the next 4 bytes are treated as a Word32 which is converted into
> the Char 'u'.
>
> Here's a registerised Prelude.hi, with no way string (length 0):
>
> 00000000  01 fa ce 64 00 00 00 00  00 00 18 7a 04 00 00 00
> |...d.......z....|
> 00000010  36 00 00 00 30 00 00 00  38 00 00 00 32 00 00 00
> |6...0...8...2...|
> 00000020  00 00 00 00 18 72 00 00  00 00 00 00 00 00 00 00
> |.....r..........|
>
> Some bits may be smaller if you are 32bit, but the version number should
> allow you to orientate yourself.
>
>
> > Here is my build.mk:
>
>
> Nothing jumps out as being wrong. To save time, you might want to add
>
> GhcLibWays=
>
> and remove your GhcRTSWays definitions, as there's no point building the
> profiling libraries and RTS for now.
>
>
> Also, what is the output of
>
>     compiler/stage1/ghc-inplace --info
>
> ?
>
>
> Thanks
>
> Ian
>
>
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to