mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
merge revision(s) 49411,49419,49451,49485,49489:
configure.in: check dtace -G * configure.in (RUBY_DTRACE_POSTPROCESS): check if the object file is really modified by `dtrace -G`, this command is very system dependent. * common.mk (ruby-glommed.o): dependency on $(OBJ) should be written in common.mk (in which OBJ is defined) because of Makefile include and parse order. This partly reverts r49419. [ruby-dev:48849] [Bug #10808] * Makefile.in (ruby-glommed.o): ditto. * Makefile.in (ruby-glommed.o): remove excess $(DTRACE_OBJ) because it is included in $(OBJS) since r49451. * Makefile.in (probes.o): should depend on $(DTRACE_DEPENDENT_OBJS) * Makefile.in (probes.stamp): rebuild dtrace dependent objects only when `dtrace -G` modifies its input files. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
6d0b1d8a86
commit
23cf2750d1
5 changed files with 65 additions and 38 deletions
19
ChangeLog
19
ChangeLog
|
|
@ -1,3 +1,22 @@
|
|||
Sun Feb 22 17:11:25 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* Makefile.in (probes.stamp): rebuild dtrace dependent objects
|
||||
only when `dtrace -G` modifies its input files.
|
||||
|
||||
Sun Feb 22 17:11:25 2015 Naohisa Goto <ngotogenome@gmail.com>
|
||||
|
||||
* common.mk (ruby-glommed.o): dependency on $(OBJ) should be written
|
||||
in common.mk (in which OBJ is defined) because of Makefile include
|
||||
and parse order. This partly reverts r49419.
|
||||
[ruby-dev:48849] [Bug #10808]
|
||||
|
||||
* Makefile.in (ruby-glommed.o): ditto.
|
||||
|
||||
* Makefile.in (ruby-glommed.o): remove excess $(DTRACE_OBJ) because
|
||||
it is included in $(OBJS) since r49451.
|
||||
|
||||
* Makefile.in (probes.o): should depend on $(DTRACE_DEPENDENT_OBJS)
|
||||
|
||||
Sun Feb 22 02:16:40 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* file.c (rb_file_identical_p): fix handle leak, ensure to close
|
||||
|
|
|
|||
49
Makefile.in
49
Makefile.in
|
|
@ -1,7 +1,7 @@
|
|||
SHELL = /bin/sh
|
||||
NULLCMD = @NULLCMD@
|
||||
n=$(NULLCMD)
|
||||
ECHO1 = $(V:1=@$n)
|
||||
ECHO1 = $(V:1=$n)
|
||||
RUNCMD = $(SHELL)
|
||||
CDPATH = .
|
||||
CHDIR = @CHDIR@
|
||||
|
|
@ -130,6 +130,19 @@ LIBRUBYARG_SHARED = @LIBRUBYARG_SHARED@
|
|||
LIBRUBY_RELATIVE = @LIBRUBY_RELATIVE@
|
||||
LIBRUBY_A_OBJS = @LIBRUBY_A_OBJS@
|
||||
|
||||
DTRACE_REBUILD_OBJS = $(DTRACE_REBUILD:yes=$(DTRACE_DEPENDENT_OBJS))
|
||||
|
||||
DTRACE_DEPENDENT_OBJS = array.$(OBJEXT) \
|
||||
eval.$(OBJEXT) \
|
||||
gc.$(OBJEXT) \
|
||||
hash.$(OBJEXT) \
|
||||
load.$(OBJEXT) \
|
||||
object.$(OBJEXT) \
|
||||
parse.$(OBJEXT) \
|
||||
string.$(OBJEXT) \
|
||||
symbol.$(OBJEXT) \
|
||||
vm.$(OBJEXT)
|
||||
|
||||
THREAD_MODEL = @THREAD_MODEL@
|
||||
|
||||
PREP = @PREP@
|
||||
|
|
@ -160,8 +173,9 @@ VCS = @VCS@
|
|||
VCSUP = @VCSUP@
|
||||
DTRACE = @DTRACE@
|
||||
DTRACE_EXT = @DTRACE_EXT@
|
||||
DTRACE_OBJ = @DTRACE_OBJ@
|
||||
DTRACE_GLOMMED_OBJ = @DTRACE_GLOMMED_OBJ@
|
||||
DTRACE_OBJ = @DTRACE_OBJ@
|
||||
DTRACE_REBUILD= @DTRACE_REBUILD@
|
||||
DTRACE_GLOMMED_OBJ = $(DTRACE_REBUILD:yes=ruby-glommed.$(OBJEXT))
|
||||
|
||||
OBJEXT = @OBJEXT@
|
||||
ASMEXT = S
|
||||
|
|
@ -201,7 +215,7 @@ all:
|
|||
miniruby$(EXEEXT):
|
||||
@-if test -f $@; then $(MV) -f $@ $@.old; $(RM) $@.old; fi
|
||||
$(ECHO) linking $@
|
||||
$(Q) $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(INITOBJS) $(DTRACE_OBJ) $(MAINLIBS) $(LIBS) $(OUTFLAG)$@
|
||||
$(Q) $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(INITOBJS) $(MAINLIBS) $(LIBS) $(OUTFLAG)$@
|
||||
|
||||
$(PROGRAM):
|
||||
@$(RM) $@
|
||||
|
|
@ -224,7 +238,7 @@ $(LIBRUBY_A):
|
|||
$(LIBRUBY_SO):
|
||||
@-$(PRE_LIBRUBY_UPDATE)
|
||||
$(ECHO) linking shared-library $@
|
||||
$(Q) $(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(DTRACE_OBJ) $(SOLIBS) $(EXTSOLIBS) $(OUTFLAG)$@
|
||||
$(Q) $(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(SOLIBS) $(EXTSOLIBS) $(OUTFLAG)$@
|
||||
-$(Q) $(OBJCOPY) -w -L '$(SYMBOL_PREFIX)Init_*' -L '$(SYMBOL_PREFIX)*_threadptr_*' $@
|
||||
$(Q) $(POSTLINK)
|
||||
@-$(MINIRUBY) -e 'ARGV.each{|link| File.delete link rescue nil; \
|
||||
|
|
@ -370,25 +384,24 @@ enc/jis/props.h: enc/jis/props.kwd
|
|||
@$(ECHO) copying dummy $(DEST_FILE)
|
||||
$(Q) $(CP) $(OS_SRC_FILE) $(OS_DEST_FILE)
|
||||
|
||||
probes.@OBJEXT@: $(srcdir)/probes.d
|
||||
probes.stamp: $(DTRACE_REBUILD_OBJS)
|
||||
$(Q) if test -f $@ -o -f probes.$(OBJEXT); then \
|
||||
$(RM) $(DTRACE_REBUILD_OBJS) $@; \
|
||||
$(ECHO0) "rebuilding objects which were modified by \"dtrace -G\""; \
|
||||
$(MAKE) $(DTRACE_REBUILD_OBJS); \
|
||||
fi
|
||||
$(Q) touch $@
|
||||
|
||||
probes.@OBJEXT@: $(srcdir)/probes.d probes.stamp
|
||||
@$(ECHO) processing probes in object files
|
||||
$(Q) stamp="$*.stamp"; \
|
||||
if test -f "$$stamp" -o -f "$@"; then \
|
||||
$(RM) $(DTRACE_DEPENDENT_OBJS) "$$stamp"; \
|
||||
for o in $(DTRACE_DEPENDENT_OBJS); do \
|
||||
echo "rebuilding $$o which was modified by \"dtrace -G\""; \
|
||||
$(MAKE) "$$o"; \
|
||||
done; \
|
||||
fi; \
|
||||
touch "$$stamp"
|
||||
$(RM) $@
|
||||
$(Q) $(DTRACE) -G -C $(INCFLAGS) -s $(srcdir)/probes.d -o $@ $(DTRACE_DEPENDENT_OBJS)
|
||||
$(Q) $(RM) $@
|
||||
$(Q) $(DTRACE) -G -C $(INCFLAGS) -s $(srcdir)/probes.d -o $@ $(DTRACE_REBUILD_OBJS)
|
||||
|
||||
# DTrace static library hacks described here:
|
||||
# http://mail.opensolaris.org/pipermail/dtrace-discuss/2005-August/000207.html
|
||||
ruby-glommed.$(OBJEXT):
|
||||
@$(ECHO) generating a glommed object with DTrace probes for static library
|
||||
$(Q) $(LD) -r -o $@ $(OBJS) $(DTRACE_OBJ)
|
||||
$(Q) $(LD) -r -o $@ $(OBJS)
|
||||
|
||||
clean-local::
|
||||
$(Q)$(RM) ext/extinit.c ext/extinit.$(OBJEXT) ext/ripper/y.output \
|
||||
|
|
|
|||
22
common.mk
22
common.mk
|
|
@ -8,7 +8,8 @@ dll: $(LIBRUBY_SO)
|
|||
V = 0
|
||||
Q1 = $(V:1=)
|
||||
Q = $(Q1:0=@)
|
||||
ECHO = $(ECHO1:0=@echo)
|
||||
ECHO0 = $(ECHO1:0=echo)
|
||||
ECHO = @$(ECHO0)
|
||||
|
||||
UNICODE_VERSION = 7.0.0
|
||||
|
||||
|
|
@ -100,6 +101,7 @@ COMMONOBJS = array.$(OBJEXT) \
|
|||
vm_trace.$(OBJEXT) \
|
||||
thread.$(OBJEXT) \
|
||||
cont.$(OBJEXT) \
|
||||
$(DTRACE_OBJ) \
|
||||
$(BUILTIN_ENCOBJS) \
|
||||
$(BUILTIN_TRANSOBJS) \
|
||||
$(MISSING)
|
||||
|
|
@ -191,7 +193,7 @@ prog: program wprogram
|
|||
|
||||
$(PREP): $(MKFILES)
|
||||
|
||||
miniruby$(EXEEXT): config.status $(ALLOBJS) $(ARCHFILE) $(DTRACE_OBJ)
|
||||
miniruby$(EXEEXT): config.status $(ALLOBJS) $(ARCHFILE)
|
||||
|
||||
objs: $(ALLOBJS)
|
||||
|
||||
|
|
@ -217,7 +219,7 @@ mini: PHONY miniruby$(EXEEXT)
|
|||
|
||||
$(PROGRAM) $(WPROGRAM): $(LIBRUBY) $(MAINOBJ) $(OBJS) $(EXTOBJS) $(SETUP) $(PREP)
|
||||
|
||||
$(LIBRUBY_A): $(OBJS) $(MAINOBJ) $(DTRACE_OBJ) $(DTRACE_GLOMMED_OBJ) $(INITOBJS) $(ARCHFILE)
|
||||
$(LIBRUBY_A): $(LIBRUBY_A_OBJS) $(MAINOBJ) $(INITOBJS) $(ARCHFILE)
|
||||
|
||||
$(LIBRUBY_SO): $(OBJS) $(DLDOBJS) $(LIBRUBY_A) $(PREP) $(LIBRUBY_SO_UPDATE) $(BUILTIN_ENCOBJS)
|
||||
|
||||
|
|
@ -694,19 +696,7 @@ verconf.h: $(srcdir)/template/verconf.h.tmpl $(srcdir)/tool/generic_erb.rb
|
|||
$(ECHO) creating $@
|
||||
$(Q) $(MINIRUBY) "$(srcdir)/tool/generic_erb.rb" -o $@ $(srcdir)/template/verconf.h.tmpl
|
||||
|
||||
DTRACE_DEPENDENT_OBJS = array.$(OBJEXT) \
|
||||
eval.$(OBJEXT) \
|
||||
gc.$(OBJEXT) \
|
||||
hash.$(OBJEXT) \
|
||||
load.$(OBJEXT) \
|
||||
object.$(OBJEXT) \
|
||||
parse.$(OBJEXT) \
|
||||
string.$(OBJEXT) \
|
||||
symbol.$(OBJEXT) \
|
||||
vm.$(OBJEXT)
|
||||
|
||||
probes.$(OBJEXT): $(DTRACE_DEPENDENT_OBJS)
|
||||
ruby-glommed.$(OBJEXT): $(OBJS) $(DTRACE_OBJ)
|
||||
ruby-glommed.$(OBJEXT): $(OBJS)
|
||||
|
||||
$(OBJS): {$(VPATH)}config.h {$(VPATH)}missing.h
|
||||
|
||||
|
|
|
|||
11
configure.in
11
configure.in
|
|
@ -643,9 +643,11 @@ _PROBES
|
|||
int main(void){ CONFTEST_FIRE(); return 0; }
|
||||
_CONF
|
||||
$CC $CFLAGS $CPPFLAGS -c -o conftest.o conftest.c &&
|
||||
cp -p conftest.o conftest.oo &&
|
||||
$DTRACE -G -s conftest_provider.d conftest.o 2>/dev/null
|
||||
}; then
|
||||
rb_cv_prog_dtrace_g=yes
|
||||
cmp -b conftest.o conftest.oo || rb_cv_prog_dtrace_g=rebuild
|
||||
else
|
||||
rb_cv_prog_dtrace_g=no
|
||||
fi
|
||||
|
|
@ -3591,6 +3593,7 @@ if test "${enable_dtrace}" = "auto"; then
|
|||
fi
|
||||
|
||||
LIBRUBY_A_OBJS='$(OBJS)'
|
||||
DTRACE_REBUILD=
|
||||
if test "${enable_dtrace}" = "yes"; then
|
||||
if test -z "$DTRACE"; then
|
||||
AC_MSG_ERROR([dtrace(1) is missing])
|
||||
|
|
@ -3603,9 +3606,11 @@ if test "${enable_dtrace}" = "yes"; then
|
|||
AC_MSG_ERROR([--enable-dtrace, however, USDT is not available])
|
||||
fi
|
||||
RUBY_DTRACE_POSTPROCESS()
|
||||
if test "$rb_cv_prog_dtrace_g" = 'yes'; then
|
||||
if test "$rb_cv_prog_dtrace_g" != 'no'; then
|
||||
DTRACE_OBJ='probes.$(OBJEXT)'
|
||||
DTRACE_GLOMMED_OBJ='ruby-glommed.$(OBJEXT)'
|
||||
fi
|
||||
if test "$rb_cv_prog_dtrace_g" = 'rebuild'; then
|
||||
DTRACE_REBUILD=yes
|
||||
LIBRUBY_A_OBJS='$(DTRACE_GLOMMED_OBJ)'
|
||||
fi
|
||||
AS_CASE("${target_os}", [freebsd*], [
|
||||
|
|
@ -3619,7 +3624,7 @@ else
|
|||
fi
|
||||
AC_SUBST(DTRACE_EXT)
|
||||
AC_SUBST(DTRACE_OBJ)
|
||||
AC_SUBST(DTRACE_GLOMMED_OBJ)
|
||||
AC_SUBST(DTRACE_REBUILD)
|
||||
AC_SUBST(LIBRUBY_A_OBJS)
|
||||
|
||||
RUBY_SETJMP_TYPE
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#define RUBY_VERSION "2.2.0"
|
||||
#define RUBY_RELEASE_DATE "2015-02-22"
|
||||
#define RUBY_PATCHLEVEL 75
|
||||
#define RUBY_PATCHLEVEL 76
|
||||
|
||||
#define RUBY_RELEASE_YEAR 2015
|
||||
#define RUBY_RELEASE_MONTH 2
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue