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

ruby-changes:25707

From: naruse <ko1@a...>
Date: Tue, 20 Nov 2012 21:50:34 +0900 (JST)
Subject: [ruby-changes:25707] naruse:r37764 (trunk): * configure.in (RUBY_DTRACE_AVAILABLE): only check dtrace availability.

naruse	2012-11-20 21:49:36 +0900 (Tue, 20 Nov 2012)

  New Revision: 37764

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

  Log:
    * configure.in (RUBY_DTRACE_AVAILABLE): only check dtrace availability.
    
    * configure.in (RUBY_DTRACE_POSTPROCESS): restore.

  Modified files:
    trunk/ChangeLog
    trunk/configure.in

Index: configure.in
===================================================================
--- configure.in	(revision 37763)
+++ configure.in	(revision 37764)
@@ -467,38 +467,34 @@
 AC_DEFUN([RUBY_DTRACE_AVAILABLE],
 [AC_CACHE_CHECK(whether dtrace USDT is available, rb_cv_dtrace_available,
 [
-    cat <<EOF > conftest.c
-#define _DTRACE_VERSION 1
-#include "conftest_provider.h"
-int main(void)
-{
-    if (CONFTEST_FIRE_ENABLED()) CONFTEST_FIRE();
-    return 0;
-}
-EOF
     echo "provider conftest{ probe fire(); };" > conftest_provider.d
-    rb_cv_prog_dtrace_g=no
     if $DTRACE -h -o conftest_provider.h -s conftest_provider.d >/dev/null 2>/dev/null; then
       # DTrace is available on the system
-      enable_dtrace=yes
-      $CC $CFLAGS -c -o conftest.o conftest.c
-      if $DTRACE -G -o conftest_provider.o -s conftest_provider.d conftest.o >/dev/null 2>/dev/null; then
-        # Solaris and FreeBSD need `dtrace -G`
-        rb_cv_prog_dtrace_g=yes
-      else
-        # darwin doesn't need `dtrace -G`
-        rb_cv_prog_dtrace_g=no
-      fi
+      rb_cv_dtrace_available=yes
     else
-        # DTrace is not available while dtrace command exists
-        # for example FreeBSD 8 or FreeBSD 9 without DTrace build option
-        enable_dtrace=no
+      # DTrace is not available while dtrace command exists
+      # for example FreeBSD 8 or FreeBSD 9 without DTrace build option
+      rb_cv_dtrace_available=no
     fi
-    rb_cv_dtrace_available=$enable_dtrace
     rm -f conftest.[co] conftest_provider.[dho]
 ])
 ])
 
+AC_DEFUN([RUBY_DTRACE_POSTPROCESS],
+[AC_CACHE_CHECK(whether $DTRACE needs post processing, rb_cv_prog_dtrace_g,
+[
+ echo "int main(void){ return 0; }" > conftest.c
+ echo "provider conftest{};" > conftest_provider.d
+ $CC $CFLAGS -c -o conftest.o conftest.c
+ if $DTRACE -G -s conftest_provider.d conftest.o 2>/dev/null; then
+   rb_cv_prog_dtrace_g=yes
+ else
+   rb_cv_prog_dtrace_g=no
+ fi
+ rm -f conftest.o conftest.c conftest_provider.d conftest_provider.o
+])
+])
+
 AC_CHECK_PROG([DTRACE], [${ac_tool_prefix}dtrace], [${ac_tool_prefix}dtrace])
 if test "$cross_compiling:$ac_cv_prog_DTRACE" = no: -a -n "$ac_tool_prefix"; then
     AC_CHECK_PROG([DTRACE], [dtrace], [dtrace])
@@ -2729,6 +2725,7 @@
 if test "${enable_dtrace}" = "auto"; then
     if test x"$DTRACE" != x -a x"$cross_compiling" != xyes; then
         RUBY_DTRACE_AVAILABLE()
+        enable_dtrace=$rb_cv_dtrace_available
     else
         enable_dtrace=no
     fi
@@ -2742,14 +2739,20 @@
         AC_MSG_ERROR([--enable-dtrace, however, cross compiling])
     else
         RUBY_DTRACE_AVAILABLE()
+        enable_dtrace=$rb_cv_dtrace_available
         if test "${enable_dtrace}" = "no"; then
             AC_MSG_ERROR([--enable-dtrace, however, USDT is not available])
         fi
+        RUBY_DTRACE_POSTPROCESS()
         if test "$rb_cv_prog_dtrace_g" = 'yes'; then
             DTRACE_OBJ='probes.$(OBJEXT)'
             DTRACE_GLOMMED_OBJ='ruby-glommed.$(OBJEXT)'
             LIBRUBY_A_OBJS='$(DTRACE_GLOMMED_OBJ)'
         fi
+        AS_CASE("${target_os}", [freebsd*], [
+            # FreeBSD's dtrace requires libelf
+            LIBS="-lelf $LIBS"
+        ])
     fi
     DTRACE_EXT=d
 else
@@ -2760,11 +2763,6 @@
 AC_SUBST(DTRACE_GLOMMED_OBJ)
 AC_SUBST(LIBRUBY_A_OBJS)
 
-AS_CASE("${enable_dtrace}:${target_os}", [yes:freebsd*], [
-    # FreeBSD's dtrace requires libelf
-    LIBS="-lelf $LIBS"
-])
-
 }
 { # build section
 
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 37763)
+++ ChangeLog	(revision 37764)
@@ -1,3 +1,9 @@
+Tue Nov 20 21:12:37 2012  NARUSE, Yui  <naruse@r...>
+
+	* configure.in (RUBY_DTRACE_AVAILABLE): only check dtrace availability.
+
+	* configure.in (RUBY_DTRACE_POSTPROCESS): restore.
+
 Tue Nov 20 21:22:44 2012  Masaki Suketa <masaki.suketa@n...>
 
 	* test/win32ole/test_win32ole_type.rb (test_implemented_ole_types): 

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

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