[前][次][番号順一覧][スレッド一覧]

ruby-changes:37605

From: naruse <ko1@a...>
Date: Sun, 22 Feb 2015 17:12:44 +0900 (JST)
Subject: [ruby-changes:37605] naruse:r49686 (ruby_2_2): merge revision(s) 49411, 49419, 49451, 49485, 49489:

naruse	2015-02-22 17:12:34 +0900 (Sun, 22 Feb 2015)

  New Revision: 49686

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=49686

  Log:
    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.

  Modified directories:
    branches/ruby_2_2/
  Modified files:
    branches/ruby_2_2/ChangeLog
    branches/ruby_2_2/Makefile.in
    branches/ruby_2_2/common.mk
    branches/ruby_2_2/configure.in
    branches/ruby_2_2/version.h
Index: ruby_2_2/configure.in
===================================================================
--- ruby_2_2/configure.in	(revision 49685)
+++ ruby_2_2/configure.in	(revision 49686)
@@ -643,9 +643,11 @@ _PROBES https://github.com/ruby/ruby/blob/trunk/ruby_2_2/configure.in#L643
     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"; the https://github.com/ruby/ruby/blob/trunk/ruby_2_2/configure.in#L3593
 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 https://github.com/ruby/ruby/blob/trunk/ruby_2_2/configure.in#L3606
             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 https://github.com/ruby/ruby/blob/trunk/ruby_2_2/configure.in#L3624
 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
Index: ruby_2_2/ChangeLog
===================================================================
--- ruby_2_2/ChangeLog	(revision 49685)
+++ ruby_2_2/ChangeLog	(revision 49686)
@@ -1,3 +1,22 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_2/ChangeLog#L1
+Sun Feb 22 17:11:25 2015  Nobuyoshi Nakada  <nobu@r...>
+
+	* 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@g...>
+
+	* 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@r...>
 
 	* file.c (rb_file_identical_p): fix handle leak, ensure to close
Index: ruby_2_2/common.mk
===================================================================
--- ruby_2_2/common.mk	(revision 49685)
+++ ruby_2_2/common.mk	(revision 49686)
@@ -8,7 +8,8 @@ dll: $(LIBRUBY_SO) https://github.com/ruby/ruby/blob/trunk/ruby_2_2/common.mk#L8
 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) \ https://github.com/ruby/ruby/blob/trunk/ruby_2_2/common.mk#L101
 		vm_trace.$(OBJEXT) \
 		thread.$(OBJEXT) \
 		cont.$(OBJEXT) \
+		$(DTRACE_OBJ) \
 		$(BUILTIN_ENCOBJS) \
 		$(BUILTIN_TRANSOBJS) \
 		$(MISSING)
@@ -191,7 +193,7 @@ prog: program wprogram https://github.com/ruby/ruby/blob/trunk/ruby_2_2/common.mk#L193
 
 $(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) https://github.com/ruby/ruby/blob/trunk/ruby_2_2/common.mk#L219
 
 $(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. https://github.com/ruby/ruby/blob/trunk/ruby_2_2/common.mk#L696
 	$(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
 
Index: ruby_2_2/Makefile.in
===================================================================
--- ruby_2_2/Makefile.in	(revision 49685)
+++ ruby_2_2/Makefile.in	(revision 49686)
@@ -1,7 +1,7 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_2/Makefile.in#L1
 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@ https://github.com/ruby/ruby/blob/trunk/ruby_2_2/Makefile.in#L130
 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@ https://github.com/ruby/ruby/blob/trunk/ruby_2_2/Makefile.in#L173
 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: https://github.com/ruby/ruby/blob/trunk/ruby_2_2/Makefile.in#L215
 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): https://github.com/ruby/ruby/blob/trunk/ruby_2_2/Makefile.in#L238
 $(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 https://github.com/ruby/ruby/blob/trunk/ruby_2_2/Makefile.in#L384
 	@$(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 \
Index: ruby_2_2/version.h
===================================================================
--- ruby_2_2/version.h	(revision 49685)
+++ ruby_2_2/version.h	(revision 49686)
@@ -1,6 +1,6 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_2/version.h#L1
 #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

Property changes on: ruby_2_2
___________________________________________________________________
Modified: svn:mergeinfo
   Merged /trunk:r49411,49419,49451,49485,49489


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]