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.