configure.in: check USDT headers

* configure.in (RUBY_DTRACE_AVAILABLE): try compile to see if
  headers are available too.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49759 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2015-02-26 00:48:10 +00:00
parent 25f99aef58
commit fefdad109a

View File

@ -617,8 +617,10 @@ AC_DEFUN([RUBY_DTRACE_AVAILABLE],
[ [
echo "provider conftest{ probe fire(); };" > conftest_provider.d 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 if $DTRACE -h -o conftest_provider.h -s conftest_provider.d >/dev/null 2>/dev/null; then
# DTrace is available on the system AC_TRY_COMPILE([@%:@include "conftest_provider.h"], [CONFTEST_FIRE();], [
rb_cv_dtrace_available=yes # DTrace is available on the system
rb_cv_dtrace_available=yes
], [rb_cv_dtrace_available=no])
else else
# DTrace is not available while dtrace command exists # DTrace is not available while dtrace command exists
# for example FreeBSD 8 or FreeBSD 9 without DTrace build option # for example FreeBSD 8 or FreeBSD 9 without DTrace build option
@ -631,6 +633,7 @@ AC_DEFUN([RUBY_DTRACE_AVAILABLE],
AC_DEFUN([RUBY_DTRACE_POSTPROCESS], AC_DEFUN([RUBY_DTRACE_POSTPROCESS],
[AC_CACHE_CHECK(whether $DTRACE needs post processing, rb_cv_prog_dtrace_g, [AC_CACHE_CHECK(whether $DTRACE needs post processing, rb_cv_prog_dtrace_g,
[ [
rb_cv_prog_dtrace_g=no
if { if {
cat >conftest_provider.d <<_PROBES && cat >conftest_provider.d <<_PROBES &&
provider conftest { provider conftest {
@ -638,18 +641,20 @@ AC_DEFUN([RUBY_DTRACE_POSTPROCESS],
}; };
_PROBES _PROBES
$DTRACE -h -o conftest_provider.h -s conftest_provider.d >/dev/null 2>/dev/null && $DTRACE -h -o conftest_provider.h -s conftest_provider.d >/dev/null 2>/dev/null &&
cat >conftest.c <<_CONF && :
@%:@include "conftest_provider.h"
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 }; then
rb_cv_prog_dtrace_g=yes AC_TRY_COMPILE([@%:@include "conftest_provider.h"], [CONFTEST_FIRE();], [
cmp -b conftest.o conftest.oo || rb_cv_prog_dtrace_g=rebuild if {
else cp -p conftest.${ac_objext} conftest.${ac_objext}.save &&
rb_cv_prog_dtrace_g=no $DTRACE -G -s conftest_provider.d conftest.${ac_objext} 2>/dev/null &&
:
}; then
if cmp -b conftest.o conftest.${ac_objext}.save; then
rb_cv_prog_dtrace_g=yes
else
rb_cv_prog_dtrace_g=rebuild
fi
fi])
fi fi
rm -f conftest.[co] conftest_provider.[dho] rm -f conftest.[co] conftest_provider.[dho]
]) ])