summaryrefslogtreecommitdiff
path: root/utils/iserv/cbits/iservmain.c
blob: d88d14e0d63a6f69f8225965f173d8828519cb35 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#if GHC_STAGE > 1
#  include <rts/PosixSource.h>
#else // PosixSource.h not yet exposed, hacky inline for now.
#  include <ghcplatform.h>
#  if defined(solaris2_HOST_OS)
#  define _POSIX_C_SOURCE 200112L
#  define _XOPEN_SOURCE   600
#  else
#  define _POSIX_C_SOURCE 200809L
#  define _XOPEN_SOURCE   700
#  endif
#endif
#include <Rts.h>

#include <HsFFI.h>

int main (int argc, char *argv[])
{
    RtsConfig conf = defaultRtsConfig;

    // We never know what symbols GHC will look up in the future, so
    // we must retain CAFs for running interpreted code.
    conf.keep_cafs = 1;

    conf.rts_opts_enabled = RtsOptsAll;
    extern StgClosure ZCMain_main_closure;
    hs_main(argc, argv, &ZCMain_main_closure, conf);
}