1
0
Fork 0
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:
naruse 2015-02-22 08:12:34 +00:00
parent 6d0b1d8a86
commit 23cf2750d1
5 changed files with 65 additions and 38 deletions

View file

@ -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

View file

@ -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 \

View file

@ -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

View file

@ -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

View file

@ -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