aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-12-16 12:16:33 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-12-16 12:16:33 +0000
commit120e69689fab9f0b05fccb1c2a1886535991b80b (patch)
tree99aa70dd5571cc664ef05e1a1b3e642bff0d60ba
parent3ffa6b549038131d309bb78754e602da08a8c348 (diff)
downloadruby-120e69689fab9f0b05fccb1c2a1886535991b80b.tar.gz
dtrace build fixes on FreeBSD
* configure.in (RUBY_DTRACE_AVAILABLE, RUBY_DTRACE_POSTPROCESS): incorporate dtrace build fix on FreeBSD, dtrace needs -xnolibs in a jail. [ruby-core:78676] [Bug #13041] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--Makefile.in2
-rw-r--r--configure.in25
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 ee8561d0d9..1ba894e121 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
@@ -4032,6 +4034,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