X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FRtsFlags.c;h=c11cc3e925607ab5259815eccd02af148323e601;hb=c50bc4658e3801442b4581bd1d9a19f67567cdda;hp=5eb7800540ca7785a16b26ab9a730b36d7758ff3;hpb=d4942f78fc3cce355d340b7bba0b42e4123103fa;p=ghc-hetmet.git diff --git a/rts/RtsFlags.c b/rts/RtsFlags.c index 5eb7800..c11cc3e 100644 --- a/rts/RtsFlags.c +++ b/rts/RtsFlags.c @@ -413,7 +413,7 @@ setupRtsFlags(int *argc, char *argv[], int *rts_argc, char *rts_argv[]) char *ghc_rts = getenv("GHCRTS"); if (ghc_rts != NULL) { - if (rtsOptsEnabled) { + if (rtsOptsEnabled != rtsOptsNone) { splitRtsFlags(ghc_rts, rts_argc, rts_argv); } else { @@ -438,7 +438,7 @@ setupRtsFlags(int *argc, char *argv[], int *rts_argc, char *rts_argv[]) break; } else if (strequal("+RTS", argv[arg])) { - if (rtsOptsEnabled) { + if (rtsOptsEnabled != rtsOptsNone) { mode = RTS; } else { @@ -450,7 +450,14 @@ setupRtsFlags(int *argc, char *argv[], int *rts_argc, char *rts_argv[]) mode = PGM; } else if (mode == RTS && *rts_argc < MAX_RTS_ARGS-1) { - rts_argv[(*rts_argc)++] = argv[arg]; + if ((rtsOptsEnabled == rtsOptsAll) || + strequal(argv[arg], "--info")) { + rts_argv[(*rts_argc)++] = argv[arg]; + } + else { + errorBelch("Most RTS options are disabled. Link with -rtsopts to enable them."); + stg_exit(EXIT_FAILURE); + } } else if (mode == PGM) { argv[(*argc)++] = argv[arg]; @@ -547,7 +554,7 @@ error = rtsTrue; else if (strequal("info", &rts_argv[arg][2])) { printRtsInfo(); - exit(0); + stg_exit(0); } else { errorBelch("unknown RTS option: %s",rts_argv[arg]);