Bug #14445 ยป 0001-MJIT-Determine-path-of-mjit-header-and-libruby-at-ru.patch
| Makefile.in | ||
|---|---|---|
|
warnflags = @warnflags@ @strict_warnflags@
|
||
|
cppflags = @cppflags@
|
||
|
XCFLAGS = @XCFLAGS@
|
||
|
CPPFLAGS = @CPPFLAGS@ $(INCFLAGS) -DMJIT_HEADER_BUILD_DIR=\""$(EXTOUT)/include/$(arch)"\" -DLIBRUBYARG_SHARED=\""$(LIBRUBYARG_SHARED)"\" -DLIBRUBY_LIBDIR=\""$(prefix)/lib"\" -DMJIT_HEADER_INSTALL_DIR=\""$(prefix)/include/$(RUBY_BASE_NAME)-$(ruby_version)/$(arch)"\"
|
||
|
CPPFLAGS = @CPPFLAGS@ $(INCFLAGS) -DMJIT_HEADER_BUILD_DIR=\""$(EXTOUT)/include/$(arch)"\" -DLIBRUBYARG_SHARED=\""$(LIBRUBYARG_SHARED)"\" -DMJIT_HEADER_INSTALL_DIR=\""include/$(RUBY_BASE_NAME)-$(ruby_version)/$(arch)"\"
|
||
|
MJIT_HEADER_FLAGS = @MJIT_HEADER_FLAGS@
|
||
|
LDFLAGS = @STATIC@ $(CFLAGS) @LDFLAGS@
|
||
|
EXTLDFLAGS = @EXTLDFLAGS@
|
||
| mjit.c | ||
|---|---|---|
|
/* Defined in the client thread before starting MJIT threads: */
|
||
|
/* Used C compiler path. */
|
||
|
static const char *cc_path;
|
||
|
/* Linker option to enable libruby in the build directory. */
|
||
|
static char *libruby_build;
|
||
|
/* Linker option to enable libruby in the directory after install. */
|
||
|
static char *libruby_installed;
|
||
|
/* Name of the header file. */
|
||
|
static char *header_file;
|
||
|
/* Name of the precompiled header file. */
|
||
| ... | ... | |
|
int exit_code;
|
||
|
static const char *input[] = {NULL, NULL};
|
||
|
static const char *output[] = {"-o", NULL, NULL};
|
||
|
static const char *libs[] = {
|
||
|
const char *libs[] = {
|
||
|
#ifdef _WIN32
|
||
|
/* Look for ruby.dll.a in build and install directories. */
|
||
|
libruby_installed,
|
||
|
libruby_build,
|
||
|
/* Link to ruby.dll.a, because Windows DLLs don't allow unresolved symbols. */
|
||
|
"-L" LIBRUBY_LIBDIR,
|
||
|
LIBRUBYARG_SHARED,
|
||
|
"-lmsvcrt",
|
||
|
# ifdef __GNUC__
|
||
| ... | ... | |
|
init_header_filename(void)
|
||
|
{
|
||
|
FILE *f;
|
||
|
/* Root path of the running ruby process. Equal to RbConfig::TOPDIR. */
|
||
|
VALUE basedir_val;
|
||
|
char *basedir;
|
||
|
basedir_val = rb_const_get(rb_cObject, rb_intern_const("TMP_RUBY_PREFIX"));
|
||
|
basedir = StringValueCStr(basedir_val);
|
||
|
header_file = xmalloc(strlen(MJIT_HEADER_BUILD_DIR) + 2 + strlen(RUBY_MJIT_HEADER_FILE));
|
||
|
if (header_file == NULL)
|
||
| ... | ... | |
|
if ((f = fopen(header_file, "r")) == NULL) {
|
||
|
xfree(header_file);
|
||
|
header_file = xmalloc(strlen(MJIT_HEADER_INSTALL_DIR) + 2 + strlen(RUBY_MJIT_HEADER_FILE));
|
||
|
header_file = xmalloc(strlen(basedir) + 1 + strlen(MJIT_HEADER_INSTALL_DIR) + 1 + strlen(RUBY_MJIT_HEADER_FILE) + 1);
|
||
|
if (header_file == NULL)
|
||
|
return;
|
||
|
strcpy(header_file, MJIT_HEADER_INSTALL_DIR);
|
||
|
strcpy(header_file, basedir);
|
||
|
strcat(header_file, "/");
|
||
|
strcat(header_file, MJIT_HEADER_INSTALL_DIR);
|
||
|
strcat(header_file, "/");
|
||
|
strcat(header_file, RUBY_MJIT_HEADER_FILE);
|
||
|
if ((f = fopen(header_file, "r")) == NULL) {
|
||
| ... | ... | |
|
}
|
||
|
}
|
||
|
fclose(f);
|
||
|
#ifdef _WIN32
|
||
|
libruby_build = xmalloc(2 + strlen(basedir) + 1);
|
||
|
strcpy(libruby_build, "-L");
|
||
|
strcat(libruby_build, basedir);
|
||
|
libruby_installed = xmalloc(2 + strlen(basedir) + 4 + 1);
|
||
|
strcpy(libruby_installed, "-L");
|
||
|
strcat(libruby_installed, basedir);
|
||
|
strcat(libruby_installed, "/lib");
|
||
|
#endif
|
||
|
}
|
||
|
/* This is called after each fork in the child in to switch off MJIT
|
||
| ruby.c | ||
|---|---|---|
|
opt->intern.enc.name = int_enc_name;
|
||
|
}
|
||
|
if (opt->mjit.on)
|
||
|
mjit_init(&opt->mjit);
|
||
|
if (opt->src.enc.name)
|
||
|
rb_warning("-K is specified; it is for 1.8 compatibility and may cause odd behavior");
|
||
| ... | ... | |
|
ruby_gc_set_params(opt->safe_level);
|
||
|
ruby_init_loadpath_safe(opt->safe_level);
|
||
|
if (opt->mjit.on)
|
||
|
mjit_init(&opt->mjit);
|
||
|
Init_enc();
|
||
|
lenc = rb_locale_encoding();
|
||
|
rb_enc_associate(rb_progname, lenc);
|
||
| win32/Makefile.sub | ||
|---|---|---|
|
LDSHARED_1 = @if exist $(@).manifest $(MANIFESTTOOL) -manifest $(@).manifest -outputresource:$(@);2
|
||
|
LDSHARED_2 = @if exist $(@).manifest @$(RM) $(@:/=\).manifest
|
||
|
!endif
|
||
|
CPPFLAGS = $(DEFS) $(ARCHDEFS) $(CPPFLAGS) -DMJIT_HEADER_BUILD_DIR=\""$(EXTOUT)/include/$(arch)"\" -DLIBRUBYARG_SHARED=\""$(LIBRUBYARG_SHARED)"\" -DLIBRUBY_LIBDIR=\""$(prefix)/lib"\" -DMJIT_HEADER_INSTALL_DIR=\""$(prefix)/include/$(RUBY_BASE_NAME)-$(ruby_version)/$(arch)"\"
|
||
|
CPPFLAGS = $(DEFS) $(ARCHDEFS) $(CPPFLAGS) -DMJIT_HEADER_BUILD_DIR=\""$(EXTOUT)/include/$(arch)"\" -DLIBRUBYARG_SHARED=\""$(LIBRUBYARG_SHARED)"\" -DMJIT_HEADER_INSTALL_DIR=\""include/$(RUBY_BASE_NAME)-$(ruby_version)/$(arch)"\"
|
||
|
MJIT_HEADER_FLAGS = -P
|
||
|
DLDFLAGS = $(LDFLAGS) -dll
|
||