diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-02-22 08:12:34 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-02-22 08:12:34 +0000 |
commit | 23cf2750d15f6a859d13d7110e5994b3575c6604 (patch) | |
tree | 9933dce64199176bc847d67542b5b4c5c52aba00 | |
parent | 6d0b1d8a8691460189caee88bfbef2dd129b48bd (diff) |
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
-rw-r--r-- | ChangeLog | 19 | ||||
-rw-r--r-- | Makefile.in | 49 | ||||
-rw-r--r-- | common.mk | 22 | ||||
-rw-r--r-- | configure.in | 11 | ||||
-rw-r--r-- | version.h | 2 |
5 files changed, 65 insertions, 38 deletions
@@ -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 diff --git a/Makefile.in b/Makefile.in index 177fb43a4e..7da2488b46 100644 --- a/Makefile.in +++ b/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 \ @@ -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 diff --git a/configure.in b/configure.in index b3deed24fe..8297c5a8a9 100644 --- a/configure.in +++ b/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 |