[aot] fixes temp-path argument only working when using LLVM compiler. (#5099)
authorChris Lapa <chris@lapa.com.au>
Fri, 23 Jun 2017 13:30:23 +0000 (23:30 +1000)
committerZoltan Varga <vargaz@gmail.com>
Fri, 23 Jun 2017 13:30:23 +0000 (09:30 -0400)
Signed-off-by: Chris Lapa <chris@lapa.com.au>
mono/mini/aot-compiler.c

index a640300219ab69fbcdd10c51b992b820db10fca0..e4b2378a3e822f033baf8474b29064bef69e441f 100644 (file)
@@ -11696,8 +11696,14 @@ mono_compile_assembly (MonoAssembly *ass, guint32 opts, const char *aot_options)
                        acfg->tmpfname = g_strdup_printf ("%s.s", acfg->image->name);
                acfg->fp = fopen (acfg->tmpfname, "w+");
        } else {
-               int i = g_file_open_tmp ("mono_aot_XXXXXX", &acfg->tmpfname, NULL);
-               acfg->fp = fdopen (i, "w+");
+               if (strcmp (acfg->aot_opts.temp_path, "") == 0) {
+                       int i = g_file_open_tmp ("mono_aot_XXXXXX", &acfg->tmpfname, NULL);
+                       acfg->fp = fdopen (i, "w+");
+               } else {
+                       acfg->tmpbasename = g_build_filename (acfg->aot_opts.temp_path, "temp", NULL);
+                       acfg->tmpfname = g_strdup_printf ("%s.s", acfg->tmpbasename);
+                       acfg->fp = fopen (acfg->tmpfname, "w+");
+               }
        }
        if (acfg->fp == 0 && !acfg->aot_opts.llvm_only) {
                aot_printerrf (acfg, "Unable to open file '%s': %s\n", acfg->tmpfname, strerror (errno));