c553ae6488
DTrace support in ruby needs the -xnolibs flag added to the dtrace command called during build to ensure that dtrace support is enabled even if the dtrace kernel modules are not loaded at build time. However, with this dtrace will be enabled on some OS versions where it will not work, so add logic to disable it where appropriate.
77 lines
3 KiB
Text
77 lines
3 KiB
Text
--- configure.in.orig 2014-09-26 17:17:06.072358809 +0000
|
|
+++ configure.in 2014-09-26 17:17:32.251357664 +0000
|
|
@@ -515,7 +515,7 @@
|
|
[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
|
|
+ if $DTRACE -xnolibs -h -o conftest_provider.h -s conftest_provider.d >/dev/null 2>/dev/null; then
|
|
# DTrace is available on the system
|
|
rb_cv_dtrace_available=yes
|
|
else
|
|
@@ -532,13 +532,13 @@
|
|
[
|
|
if {
|
|
echo "provider conftest{ probe fire(); };" > conftest_provider.d &&
|
|
- dtrace -h -o conftest_provider.h -s conftest_provider.d >/dev/null 2>/dev/null &&
|
|
+ dtrace -xnolibs -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 -c -o conftest.o conftest.c &&
|
|
- $DTRACE -G -s conftest_provider.d conftest.o 2>/dev/null
|
|
+ $DTRACE -xnolibs -G -s conftest_provider.d conftest.o 2>/dev/null
|
|
}; then
|
|
rb_cv_prog_dtrace_g=yes
|
|
else
|
|
@@ -1428,11 +1428,11 @@
|
|
AC_CHECK_DECLS([sys_nerr], [], [], [$ac_includes_default
|
|
@%:@include <errno.h>])
|
|
|
|
-AC_CHECK_LIB(crypt, crypt)
|
|
-AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
|
|
-AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
|
|
-AC_CHECK_LIB(socket, socketpair) # SunOS/Solaris
|
|
-AC_CHECK_LIB(rt, clock_gettime) # GNU/Linux
|
|
+AC_SEARCH_LIBS(crypt, crypt)
|
|
+AC_SEARCH_LIBS(dlopen, dl) # Dynamic linking for SunOS/Solaris and SYSV
|
|
+AC_SEARCH_LIBS(shl_load, dld) # Dynamic linking for HP-UX
|
|
+AC_SEARCH_LIBS(socketpair, socket) # SunOS/Solaris
|
|
+AC_SEARCH_LIBS(clock_gettime, rt) # GNU/Linux
|
|
|
|
AS_CASE(["$target_cpu"],
|
|
[alpha*|sh4|sh4el|sh4eb], [AS_CASE(["$target_os"::"$GCC"],
|
|
@@ -2123,7 +2123,7 @@
|
|
fi
|
|
|
|
if test x"$enable_pthread" = xyes; then
|
|
- for pthread_lib in thr pthread pthreads c c_r root; do
|
|
+ for pthread_lib in pthread thr pthreads c c_r root; do
|
|
AC_CHECK_LIB($pthread_lib, pthread_kill,
|
|
rb_with_pthread=yes, rb_with_pthread=no)
|
|
if test "$rb_with_pthread" = "yes"; then break; fi
|
|
@@ -2137,6 +2137,7 @@
|
|
[c], [],
|
|
[root], [],
|
|
[c_r], [MAINLIBS="-pthread $MAINLIBS"],
|
|
+ [pthread], [MAINLIBS="-pthread $MAINLIBS"],
|
|
[AS_CASE(["$target_os"],
|
|
[openbsd*], [LIBS="-pthread $LIBS"],
|
|
[LIBS="-l$pthread_lib $LIBS"])])
|
|
@@ -2368,7 +2369,6 @@
|
|
: ${LDSHARED='$(CC) -shared'}
|
|
if test "$rb_cv_binary_elf" = yes; then
|
|
LDFLAGS="$LDFLAGS -rdynamic"
|
|
- DLDFLAGS="$DLDFLAGS "'-Wl,-soname,$@'
|
|
else
|
|
test "$GCC" = yes && test "$rb_cv_prog_gnu_ld" = yes || LDSHARED='$(LD) -Bshareable'
|
|
fi
|
|
@@ -2755,6 +2755,7 @@
|
|
[freebsd*|dragonfly*], [
|
|
SOLIBS='$(LIBS)'
|
|
LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR)'
|
|
+ LIBRUBY_DLDFLAGS='-Wl,-soname,$(LIBRUBY_SO)'
|
|
if test "$rb_cv_binary_elf" != "yes" ; then
|
|
LIBRUBY_SO="$LIBRUBY_SO.\$(TEENY)"
|
|
LIBRUBY_ALIASES=''
|