On Sat, Jun 13, 2015 at 9:44 AM, Zhen Zhang <izgzhen@gmail.com> wrote:
Hi everyone,

I am having trouble porting some 6.8.2 GHC code to 7.8.3 GHC. The main trouble I met is that, in 6.8.2, there is a includes/mkDerivedConstants.c and some constants about RTS are declared here.

While in 7.8.3, there is only a similar  `includes/dist-derivedconstants/header` directory containing a bunch of code. Some seems generated like `DerivedConstants.h`, and it seems like `tmp.c` generated this.

However, when I added some entries in `tmp.c` and compiled it, then it became the original version ... So I doubted that if there is another file which is equivalent to the includes/mkDerivedConstants.c in 6.8.2?

Hi Zhen,

Take a look at utils/deriveConstants/DeriveConstants.hs. That program generates tmp.c, then compiles it with the C compiler and inspects the sizes of symbols in the resulting object file and writes the information it gathered to DerivedConstants.h. We do it this way now to support cross-compilation (in that case, the C compiler generates object files for the target platform so we can't simply run them on the system that is building GHC).

Regards,
Reid Barton