summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authork0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-08-02 14:40:36 +0000
committerk0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-08-02 14:40:36 +0000
commitd4381d2ceb725a05857e5e5f39b697f005bb5abb (patch)
tree4a7ce8ffe3a89b5bac0e89656522244907dd20fd
parent2aea3deddd129a9693644e17ed3069535971efb5 (diff)
mjit.c: skip compaction on MinGW
because linking multiple .o files is problematic without having `static` to the same function definitions. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64162 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--mjit.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/mjit.c b/mjit.c
index e292c27017..29f8737115 100644
--- a/mjit.c
+++ b/mjit.c
@@ -872,6 +872,7 @@ link_o_to_so(const char **o_files, const char *so_file)
static void
compact_all_jit_code(void)
{
+# ifndef _WIN32 /* This requires header transformation but we don't transform header on Windows for now */
struct rb_mjit_unit *unit;
struct rb_mjit_unit_node *node;
double start_time, end_time;
@@ -921,11 +922,11 @@ compact_all_jit_code(void)
add_to_list(node, &compact_units);
if (!mjit_opts.save_temps) {
-#ifdef _WIN32
+# ifdef _WIN32
unit->so_file = strdup(so_file); /* lazily delete on `clean_object_files()` */
-#else
+# else
remove_file(so_file);
-#endif
+# endif
}
CRITICAL_SECTION_START(3, "in compact_all_jit_code to read list");
@@ -952,6 +953,7 @@ compact_all_jit_code(void)
free(unit);
verbose(1, "JIT compaction failure (%.1fms): Failed to compact methods", end_time - start_time);
}
+# endif /* _WIN32 */
}
#endif /* _MSC_VER */