Do not link ghc stage1 using -threaded, only for stage2 or 3
[ghc-hetmet.git] / rts / Hpc.c
index 3c725f4..a6e854b 100644 (file)
--- a/rts/Hpc.c
+++ b/rts/Hpc.c
@@ -174,17 +174,28 @@ readTix(void) {
 
 static void hpc_init(void) {
   char *hpc_tixdir;
+  char *hpc_tixfile;
   if (hpc_inited != 0) {
     return;
   }
   hpc_inited = 1;
   hpc_pid    = getpid();
   hpc_tixdir = getenv("HPCTIXDIR");
-
-  if (hpc_tixdir != NULL) {
-    /* Make sure the directory is present
+  hpc_tixfile = getenv("HPCTIXFILE");
+
+  /* XXX Check results of mallocs/strdups, and check we are requesting
+         enough bytes */
+  if (hpc_tixfile != NULL) {
+    tixFilename = strdup(hpc_tixfile);
+  } else if (hpc_tixdir != NULL) {
+    /* Make sure the directory is present;
+     * conditional code for mkdir lifted from lndir.c
      */
+#ifdef WIN32
+    mkdir(hpc_tixdir);
+#else
     mkdir(hpc_tixdir,0777);
+#endif
     /* Then, try open the file
      */
     tixFilename = (char *) malloc(strlen(hpc_tixdir) + strlen(prog_name) + 12);