From 3b6bb3deef374b329bca84bb0d25f64924399df6 Mon Sep 17 00:00:00 2001 From: k0kubun Date: Sun, 11 Feb 2018 04:20:32 +0000 Subject: [PATCH] common.mk: define MJIT_HEADER earlier so that other predefined macros won't be removed by `MJITHeader.remove_predefined_macros!`. Currently macro like -DVM_CHECK_MODE=2 is removed when it's passed in configure. But it is needed during JIT compilation. gc.c: export rb_obj_info to let JIT succeed with VM_CHECK_MODE=2. ``` MJIT warning: failure in loading code from '/tmp/_ruby_mjit_p15631u0.so': /tmp/_ruby_mjit_p15631u0.so: undefined symbol: rb_obj_info ``` git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62355 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- common.mk | 2 +- gc.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/common.mk b/common.mk index 69fc6e42af..0449d24dd5 100644 --- a/common.mk +++ b/common.mk @@ -213,7 +213,7 @@ mjit_config.h: Makefile $(TIMESTAMPDIR)/$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).time: probes.h vm.$(OBJEXT) $(ECHO) building $(@F:.time=.h) - $(Q) $(CPP) $(MJIT_HEADER_FLAGS) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) -DMJIT_HEADER $(srcdir)/vm.c $(CPPOUTFLAG)$(@F:.time=.h).new + $(Q) $(CPP) -DMJIT_HEADER $(MJIT_HEADER_FLAGS) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(srcdir)/vm.c $(CPPOUTFLAG)$(@F:.time=.h).new $(Q) $(IFCHANGE) "--timestamp=$@" $(@F:.time=.h) $(@F:.time=.h).new $(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).h: $(TIMESTAMPDIR)/$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).time diff --git a/gc.c b/gc.c index be0dd701ff..a1e6bc4bc2 100644 --- a/gc.c +++ b/gc.c @@ -9452,7 +9452,7 @@ obj_info(VALUE obj) } #endif -const char * +MJIT_FUNC_EXPORTED const char * rb_obj_info(VALUE obj) { if (!rb_special_const_p(obj)) {