From c49060b1d91c794275877572460080b9fd5bceab Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 17 Dec 2016 07:48:58 +0000 Subject: Reapply r57093,r57094,r57097 "dtrace build fixes on FreeBSD" git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57104 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- Makefile.in | 2 +- configure.in | 25 ++++++++++++++----------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/Makefile.in b/Makefile.in index 9c8748aa4d..52618232b0 100644 --- a/Makefile.in +++ b/Makefile.in @@ -174,7 +174,7 @@ OBJDUMP = @OBJDUMP@ OBJCOPY = @OBJCOPY@ VCS = @VCS@ VCSUP = @VCSUP@ -DTRACE = @DTRACE@ +DTRACE = @DTRACE@ @DTRACE_OPT@ DTRACE_EXT = @DTRACE_EXT@ DTRACE_OBJ = @DTRACE_OBJ@ DTRACE_REBUILD= @DTRACE_REBUILD@ diff --git a/configure.in b/configure.in index 6645908f81..c5132dc97f 100644 --- a/configure.in +++ b/configure.in @@ -640,18 +640,20 @@ AC_DEFUN([RUBY_DTRACE_AVAILABLE], [AC_CACHE_CHECK(whether dtrace USDT is available, rb_cv_dtrace_available, [ echo "provider conftest{ probe fire(); };" > conftest_provider.d - if $DTRACE -h -o conftest_provider.h -s conftest_provider.d >/dev/null 2>/dev/null; then - AC_TRY_COMPILE([@%:@include "conftest_provider.h"], [CONFTEST_FIRE();], [ + rb_cv_dtrace_available=no + AS_FOR(opt, rb_dtrace_opt, ["-xnolibs" ""], [dnl + AS_IF([$DTRACE opt -h -o conftest_provider.h -s conftest_provider.d >/dev/null 2>/dev/null], + [], [continue]) + AC_TRY_COMPILE([@%:@include "conftest_provider.h"], [CONFTEST_FIRE();], + [], [continue]) # DTrace is available on the system - rb_cv_dtrace_available=yes - ], [rb_cv_dtrace_available=no]) - else - # 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=yes${rb_dtrace_opt:+"(opt)"} + break + ]) rm -f conftest.[co] conftest_provider.[dho] ]) +AS_CASE(["$rb_cv_dtrace_available"], ["yes("*")"], + [DTRACE_OPT=`expr "$rb_cv_dtrace_available" : "yes(\(.*\))"`]) ]) AC_DEFUN([RUBY_DTRACE_POSTPROCESS], @@ -664,13 +666,13 @@ AC_DEFUN([RUBY_DTRACE_POSTPROCESS], probe fire(); }; _PROBES - $DTRACE -h -o conftest_provider.h -s conftest_provider.d >/dev/null 2>/dev/null && + $DTRACE ${DTRACE_OPT} -h -o conftest_provider.h -s conftest_provider.d >/dev/null 2>/dev/null && : }; then AC_TRY_COMPILE([@%:@include "conftest_provider.h"], [CONFTEST_FIRE();], [ if { cp -p conftest.${ac_objext} conftest.${ac_objext}.save && - $DTRACE -G -s conftest_provider.d conftest.${ac_objext} 2>/dev/null && + $DTRACE ${DTRACE_OPT} -G -s conftest_provider.d conftest.${ac_objext} 2>/dev/null && : }; then if cmp -s conftest.o conftest.${ac_objext}.save; then @@ -4029,6 +4031,7 @@ AS_CASE([$rb_cv_dtrace_available], AC_SUBST(DTRACE_EXT) AC_SUBST(DTRACE_OBJ) AC_SUBST(DTRACE_REBUILD) +AC_SUBST(DTRACE_OPT) AC_SUBST(LIBRUBY_A_OBJS) RUBY_SETJMP_TYPE -- cgit v1.2.3