HeapStackCheck.cmm

Simon Marlow marlowsd at gmail.com
Tue Dec 10 21:06:00 UTC 2013


On 10/12/13 00:35, Alexander Pakhomov wrote:
> Hi. Trying to compile ghc HEAD on OpenBSD I got an error:
> rts/HeapStackCheck.cmm:97:18: parse error on input `['
> The code is following:
>   96         if (HpAlloc <= BLOCK_SIZE
>   97             && bdescr_link(CurrentNursery) != NULL) {
> which preprocesses to:
>          if (HpAlloc <= (1<<12)
>              && b0[CurrentNursery+15] != (0::bits64)) {
> This is the first occurrence of b0 in preprocessed file. I believe that it is due to undefined b0.
> Command that fails is:
> "inplace/bin/ghc-stage1" -static  -H32m -O -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Irts -Irts/dist/build -DCOMPILING_RTS -package-name rts -dcmm-lint      -i -irts -irts/dist/build -irts/dist/build/autogen -Irts/dist/build -Irts/dist/build/autogen           -O2    -c rts/HeapStackCheck.cmm -o rts/dist/build/HeapStackCheck.o
> To preprocess do the following:
> cpp -O -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -Irts -Irts/dist/build -DCOMPILING_RTS -Irts/dist/build -Irts/dist/build/autogen         rts/HeapStackCheck.cmm | less
>
> Can you please find source of b0 in preprocessed file?

I think this means that something went wrong when generating 
DerivedConstants.h, which is where the definition of bdescr_link() comes 
from.  In my build, I have the following, in the file 
includes/dist-derivedconstants/header/:

#define OFFSET_bdescr_link 16
#define REP_bdescr_link b64
#define bdescr_link(__ptr__) REP_bdescr_link[__ptr__+OFFSET_bdescr_link]

This is auto-generated by the program in utils/deriveConstants.  This 
used to be a C program, but nowadays it's a Haskell program that 
generates a C program for reasons that I forget.  Anyway, your problem 
is somewhere in there... see if you can find out where by dumping out 
intermediate files and so forth.  If you get stuck, tell us where you 
get to and we'll try to help some more.

Cheers,
Simon



More information about the ghc-devs mailing list