X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fghc-inplace.c;h=8cddc898a5e7f8a3f04efbf96616c797c7c3d6c3;hb=993ce43d3f3fb6bdb04cbc6d82babdd23355f7d7;hp=0129258c28a0eac9af3ffd41e456cbded3fbdc0c;hpb=b2445ac5c5d83a8cdedd78d7b80db9eb11012030;p=ghc-hetmet.git diff --git a/compiler/ghc-inplace.c b/compiler/ghc-inplace.c index 0129258..8cddc89 100644 --- a/compiler/ghc-inplace.c +++ b/compiler/ghc-inplace.c @@ -1,24 +1,29 @@ - #include +#include #include #include #include +#include int main(int argc, char **argv) { char **args; - args = malloc(sizeof(char *) * (argc + 3)); + args = malloc(sizeof(char *) * (argc + 4)); if (args == NULL) { fprintf(stderr, "Malloc failed\n"); exit(1); } - args[0] = GHC_PATH; - args[1] = "-B" TOP_ABS; - args[2] = "-fhardwire-lib-paths"; + args[0] = "GHC_PATH"; /* Gets replaced by sed */ + args[1] = "-BTOP_ABS"; /* Gets replaced by sed */ + args[2] = "-dynload"; + args[3] = "wrapped"; if ((argc >= 2) && (strcmp(argv[1], "-v") == 0)) { - printf("Using %s %s %s\n", args[0], args[1], args[2]); + printf("Using %s %s %s %s\n", args[0], args[1], args[2], args[3]); + fflush(stdout); } - memcpy(args + 3, argv + 1, sizeof(char *) * (argc - 1)); - args[argc+2] = NULL; - execv(GHC_PATH, args); - return 0; + memcpy(args + 4, argv + 1, sizeof(char *) * (argc - 1)); + args[argc+3] = NULL; + return run(argv[0], + "GHC_PATH", /* Gets replaced by sed */ + argc + 3, + args); }