Skip to content

Hadrian does not properly track dependencies of _build/stage0/lib/DerivedConstants.h

DerivedConstants.h is generated by the program utils/deriveConstants. Part of what it does is generate a bunch of constants from the rts headers. For example the line

#define REP_bdescr_blocks b32

derives from the line

    StgWord32 blocks;          // [READ ONLY] no. of blocks in a group

in rts/include/rts/storage/Block.h

However, modifying this line in Block.h to StgWord16 blocks and running hadrian _build/stage0/lib/DerivedConstants.h does not propagate the change as one would expect. (one would expect to see #define REP_bdescr_blocks b16).

I believe this is because hadrian does not know that there is a dependency into the rts headers.

Edited by Douglas Wilson
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information