freebsd-ports/lang/ruby20/files/patch-configure.in
Steve Wills c553ae6488 lang/ruby2*: fix dtrace support
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.
2014-10-01 15:45:27 +00:00

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=''