summaryrefslogtreecommitdiff
path: root/mjit.c
diff options
context:
space:
mode:
authork0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-08-05 05:34:37 +0000
committerk0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-08-05 05:34:37 +0000
commit88975c821c99b852959958e2934de68a45be15e6 (patch)
tree4384d12ea863efc875166a0aca6cb21ebf69b985 /mjit.c
parentd3e90363d36ec74ff97d2b17abbe1bf626c8deaf (diff)
mjit.c: link precompiled object
This is needed to resolve: "error LNK2011: precompiled object not linked in; image may not run" win32/Makefile.sub: Use the same flags as ones for precompiled header. This is needed to resolve: "error C2855: command-line option '/Z7' inconsistent with precompiled header" git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'mjit.c')
-rw-r--r--mjit.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/mjit.c b/mjit.c
index 31d83d0923..efe35ee1af 100644
--- a/mjit.c
+++ b/mjit.c
@@ -732,7 +732,7 @@ static int
compile_c_to_so(const char *c_file, const char *so_file)
{
int exit_code;
- const char *files[] = { NULL, NULL, NULL, "-link", libruby_pathflag, NULL };
+ const char *files[] = { NULL, NULL, NULL, NULL, "-link", libruby_pathflag, NULL };
char **args;
char *p;
@@ -748,7 +748,13 @@ compile_c_to_so(const char *c_file, const char *so_file)
p = append_str2(p, pch_file, strlen(pch_file));
*p = '\0';
- files[2] = c_file;
+ /* files[2] = "C:/.../rb_mjit_header-*.obj" */
+ files[2] = p = (char *)alloca(sizeof(char) * (strlen(pch_file) + 1));
+ p = append_str2(p, pch_file, strlen(pch_file) - strlen(".pch"));
+ p = append_lit(p, ".obj");
+ *p = '\0';
+
+ files[3] = c_file;
args = form_args(5, CC_LDSHARED_ARGS, CC_CODEFLAG_ARGS,
files, CC_LIBS, CC_DLDFLAGS_ARGS);
if (args == NULL)
@@ -1801,7 +1807,7 @@ mjit_finish(void)
return;
/* Wait for pch finish */
- verbose(2, "Canceling pch and worker threads");
+ verbose(2, "Canceling worker thread");
CRITICAL_SECTION_START(3, "in mjit_finish to wakeup from pch");
/* As our threads are detached, we could just cancel them. But it
is a bad idea because OS processes (C compiler) started by