build: remove dtrace probes
The existing probes, all two of them, cause a great deal of pain for people trying to build libuv on Linux because of SystemTap's dtrace(1) utilitity not understanding the -xnolibs flag. We could hack around that but it's easier to just remove the probes: they are largely useless and unused while still needing a lot of supporting infrastructure. This commit removes 200 lines of code and configuration. Refs joyent/libuv#1478.
This commit is contained in:
parent
f914721c24
commit
cb5140023b
3
.gitignore
vendored
3
.gitignore
vendored
@ -34,9 +34,6 @@ vgcore.*
|
|||||||
Makefile
|
Makefile
|
||||||
Makefile.in
|
Makefile.in
|
||||||
|
|
||||||
# Generated by dtrace(1) when doing an in-tree build.
|
|
||||||
/include/uv-dtrace.h
|
|
||||||
|
|
||||||
# Generated by gyp for android
|
# Generated by gyp for android
|
||||||
*.target.mk
|
*.target.mk
|
||||||
|
|
||||||
|
|||||||
39
Makefile.am
39
Makefile.am
@ -307,46 +307,7 @@ libuv_la_CFLAGS += -D__EXTENSIONS__ -D_XOPEN_SOURCE=500
|
|||||||
libuv_la_SOURCES += src/unix/sunos.c
|
libuv_la_SOURCES += src/unix/sunos.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if HAVE_DTRACE
|
|
||||||
BUILT_SOURCES = include/uv-dtrace.h
|
|
||||||
CLEANFILES += include/uv-dtrace.h
|
|
||||||
if FREEBSD
|
|
||||||
libuv_la_LDFLAGS += -lelf
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
if DTRACE_NEEDS_OBJECTS
|
|
||||||
libuv_la_SOURCES += src/unix/uv-dtrace.d
|
|
||||||
libuv_la_DEPENDENCIES = src/unix/uv-dtrace.o
|
|
||||||
libuv_la_LIBADD = uv-dtrace.lo
|
|
||||||
CLEANFILES += src/unix/uv-dtrace.o src/unix/uv-dtrace.lo
|
|
||||||
endif
|
|
||||||
|
|
||||||
if HAVE_PKG_CONFIG
|
if HAVE_PKG_CONFIG
|
||||||
pkgconfigdir = $(libdir)/pkgconfig
|
pkgconfigdir = $(libdir)/pkgconfig
|
||||||
pkgconfig_DATA = @PACKAGE_NAME@.pc
|
pkgconfig_DATA = @PACKAGE_NAME@.pc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if HAVE_DTRACE
|
|
||||||
include/uv-dtrace.h: src/unix/uv-dtrace.d
|
|
||||||
$(AM_V_GEN)$(DTRACE) $(DTRACEFLAGS) -h -xnolibs -s $< -o $(top_srcdir)/$@
|
|
||||||
endif
|
|
||||||
|
|
||||||
if DTRACE_NEEDS_OBJECTS
|
|
||||||
SUFFIXES = .d
|
|
||||||
|
|
||||||
src/unix/uv-dtrace.o: src/unix/uv-dtrace.d ${libuv_la_OBJECTS}
|
|
||||||
|
|
||||||
# It's ok to specify the output here, because we have 1 .d file, and we process
|
|
||||||
# every created .o, most projects don't need to include more than one .d
|
|
||||||
.d.o:
|
|
||||||
$(AM_V_GEN)$(DTRACE) $(DTRACEFLAGS) -G -o $(top_builddir)/uv-dtrace.o -s $< \
|
|
||||||
`find ${top_builddir}/src -name "*.o"`
|
|
||||||
$(AM_V_GEN)printf %s\\n \
|
|
||||||
'# ${top_builddir}/uv-dtrace.lo - a libtool object file' \
|
|
||||||
'# Generated by libtool (GNU libtool) 2.4' \
|
|
||||||
'# libtool wants a .lo not a .o' \
|
|
||||||
"pic_object='uv-dtrace.o'" \
|
|
||||||
"non_pic_object='uv-dtrace.o'" \
|
|
||||||
> ${top_builddir}/uv-dtrace.lo
|
|
||||||
endif
|
|
||||||
|
|||||||
@ -50,7 +50,6 @@ AM_CONDITIONAL([NETBSD], [AS_CASE([$host_os],[netbsd*], [true], [false])
|
|||||||
AM_CONDITIONAL([OPENBSD], [AS_CASE([$host_os],[openbsd*], [true], [false])])
|
AM_CONDITIONAL([OPENBSD], [AS_CASE([$host_os],[openbsd*], [true], [false])])
|
||||||
AM_CONDITIONAL([SUNOS], [AS_CASE([$host_os],[solaris*], [true], [false])])
|
AM_CONDITIONAL([SUNOS], [AS_CASE([$host_os],[solaris*], [true], [false])])
|
||||||
AM_CONDITIONAL([WINNT], [AS_CASE([$host_os],[mingw*], [true], [false])])
|
AM_CONDITIONAL([WINNT], [AS_CASE([$host_os],[mingw*], [true], [false])])
|
||||||
PANDORA_ENABLE_DTRACE
|
|
||||||
AC_CHECK_PROG(PKG_CONFIG, pkg-config, yes)
|
AC_CHECK_PROG(PKG_CONFIG, pkg-config, yes)
|
||||||
AM_CONDITIONAL([HAVE_PKG_CONFIG], [test "x$PKG_CONFIG" != "x"])
|
AM_CONDITIONAL([HAVE_PKG_CONFIG], [test "x$PKG_CONFIG" != "x"])
|
||||||
AS_IF([test "x$PKG_CONFIG" != "x"], [
|
AS_IF([test "x$PKG_CONFIG" != "x"], [
|
||||||
|
|||||||
3
m4/.gitignore
vendored
3
m4/.gitignore
vendored
@ -1,5 +1,4 @@
|
|||||||
# Ignore libtoolize-generated files.
|
# Ignore libtoolize-generated files.
|
||||||
*.m4
|
*.m4
|
||||||
!as_case.m4
|
!as_case.m4
|
||||||
!dtrace.m4
|
!libuv-check-flags.m4
|
||||||
!libuv-check-flags.m4
|
|
||||||
|
|||||||
66
m4/dtrace.m4
66
m4/dtrace.m4
@ -1,66 +0,0 @@
|
|||||||
dnl Copyright (C) 2009 Sun Microsystems
|
|
||||||
dnl This file is free software; Sun Microsystems
|
|
||||||
dnl gives unlimited permission to copy and/or distribute it,
|
|
||||||
dnl with or without modifications, as long as this notice is preserved.
|
|
||||||
|
|
||||||
dnl ---------------------------------------------------------------------------
|
|
||||||
dnl Macro: PANDORA_ENABLE_DTRACE
|
|
||||||
dnl ---------------------------------------------------------------------------
|
|
||||||
AC_DEFUN([PANDORA_ENABLE_DTRACE],[
|
|
||||||
AC_ARG_ENABLE([dtrace],
|
|
||||||
[AS_HELP_STRING([--disable-dtrace],
|
|
||||||
[enable DTrace USDT probes. @<:@default=yes@:>@])],
|
|
||||||
[ac_cv_enable_dtrace="$enableval"],
|
|
||||||
[ac_cv_enable_dtrace="yes"])
|
|
||||||
|
|
||||||
AS_IF([test "$ac_cv_enable_dtrace" = "yes"],[
|
|
||||||
AC_CHECK_PROGS([DTRACE], [dtrace])
|
|
||||||
AS_IF([test "x$ac_cv_prog_DTRACE" = "xdtrace"],[
|
|
||||||
|
|
||||||
AC_CACHE_CHECK([if dtrace works],[ac_cv_dtrace_works],[
|
|
||||||
cat >conftest.d <<_ACEOF
|
|
||||||
provider Example {
|
|
||||||
probe increment(int);
|
|
||||||
};
|
|
||||||
_ACEOF
|
|
||||||
$DTRACE -h -o conftest.h -s conftest.d 2>/dev/zero
|
|
||||||
AS_IF([test $? -eq 0],[ac_cv_dtrace_works=yes],
|
|
||||||
[ac_cv_dtrace_works=no])
|
|
||||||
rm -f conftest.h conftest.d
|
|
||||||
])
|
|
||||||
AS_IF([test "x$ac_cv_dtrace_works" = "xyes"],[
|
|
||||||
AC_DEFINE([HAVE_DTRACE], [1], [Enables DTRACE Support])
|
|
||||||
AC_CACHE_CHECK([if dtrace should instrument object files],
|
|
||||||
[ac_cv_dtrace_needs_objects],[
|
|
||||||
dnl DTrace on MacOSX does not use -G option
|
|
||||||
cat >conftest.d <<_ACEOF
|
|
||||||
provider Example {
|
|
||||||
probe increment(int);
|
|
||||||
};
|
|
||||||
_ACEOF
|
|
||||||
cat > conftest.c <<_ACEOF
|
|
||||||
#include "conftest.h"
|
|
||||||
void foo() {
|
|
||||||
EXAMPLE_INCREMENT(1);
|
|
||||||
}
|
|
||||||
_ACEOF
|
|
||||||
$DTRACE -h -o conftest.h -s conftest.d 2>/dev/zero
|
|
||||||
$CC -c -o conftest.o conftest.c
|
|
||||||
$DTRACE -G -o conftest.d.o -s conftest.d conftest.o 2>/dev/zero
|
|
||||||
AS_IF([test $? -eq 0],[ac_cv_dtrace_needs_objects=yes],
|
|
||||||
[ac_cv_dtrace_needs_objects=no])
|
|
||||||
rm -f conftest.d.o conftest.d conftest.h conftest.o conftest.c
|
|
||||||
])
|
|
||||||
])
|
|
||||||
AC_SUBST(DTRACEFLAGS) dnl TODO: test for -G on OSX
|
|
||||||
ac_cv_have_dtrace=yes
|
|
||||||
])])
|
|
||||||
|
|
||||||
AM_CONDITIONAL([HAVE_DTRACE], [test "x$ac_cv_dtrace_works" = "xyes"])
|
|
||||||
AM_CONDITIONAL([DTRACE_NEEDS_OBJECTS],
|
|
||||||
[test "x$ac_cv_dtrace_needs_objects" = "xyes"])
|
|
||||||
|
|
||||||
])
|
|
||||||
dnl ---------------------------------------------------------------------------
|
|
||||||
dnl End Macro: PANDORA_ENABLE_DTRACE
|
|
||||||
dnl ---------------------------------------------------------------------------
|
|
||||||
@ -310,8 +310,6 @@ int uv_run(uv_loop_t* loop, uv_run_mode mode) {
|
|||||||
uv__update_time(loop);
|
uv__update_time(loop);
|
||||||
|
|
||||||
while (r != 0 && loop->stop_flag == 0) {
|
while (r != 0 && loop->stop_flag == 0) {
|
||||||
UV_TICK_START(loop, mode);
|
|
||||||
|
|
||||||
uv__update_time(loop);
|
uv__update_time(loop);
|
||||||
uv__run_timers(loop);
|
uv__run_timers(loop);
|
||||||
uv__run_pending(loop);
|
uv__run_pending(loop);
|
||||||
@ -340,7 +338,6 @@ int uv_run(uv_loop_t* loop, uv_run_mode mode) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
r = uv__loop_alive(loop);
|
r = uv__loop_alive(loop);
|
||||||
UV_TICK_STOP(loop, mode);
|
|
||||||
|
|
||||||
if (mode & (UV_RUN_ONCE | UV_RUN_NOWAIT))
|
if (mode & (UV_RUN_ONCE | UV_RUN_NOWAIT))
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -306,12 +306,4 @@ UV_UNUSED(static char* uv__basename_r(const char* path)) {
|
|||||||
return s + 1;
|
return s + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef HAVE_DTRACE
|
|
||||||
#include "uv-dtrace.h"
|
|
||||||
#else
|
|
||||||
#define UV_TICK_START(arg0, arg1)
|
|
||||||
#define UV_TICK_STOP(arg0, arg1)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* UV_UNIX_INTERNAL_H_ */
|
#endif /* UV_UNIX_INTERNAL_H_ */
|
||||||
|
|||||||
79
uv.gyp
79
uv.gyp
@ -1,14 +1,4 @@
|
|||||||
{
|
{
|
||||||
'variables': {
|
|
||||||
'uv_use_dtrace%': 'false',
|
|
||||||
# uv_parent_path is the relative path to libuv in the parent project
|
|
||||||
# this is only relevant when dtrace is enabled and libuv is a child project
|
|
||||||
# as it's necessary to correctly locate the object files for post
|
|
||||||
# processing.
|
|
||||||
# XXX gyp is quite sensitive about paths with double / they don't normalize
|
|
||||||
'uv_parent_path': '/',
|
|
||||||
},
|
|
||||||
|
|
||||||
'target_defaults': {
|
'target_defaults': {
|
||||||
'conditions': [
|
'conditions': [
|
||||||
['OS != "win"', {
|
['OS != "win"', {
|
||||||
@ -296,20 +286,6 @@
|
|||||||
['uv_library=="shared_library"', {
|
['uv_library=="shared_library"', {
|
||||||
'defines': [ 'BUILDING_UV_SHARED=1' ]
|
'defines': [ 'BUILDING_UV_SHARED=1' ]
|
||||||
}],
|
}],
|
||||||
# FIXME(bnoordhuis or tjfontaine) Unify this, it's extremely ugly.
|
|
||||||
['uv_use_dtrace=="true"', {
|
|
||||||
'defines': [ 'HAVE_DTRACE=1' ],
|
|
||||||
'dependencies': [ 'uv_dtrace_header' ],
|
|
||||||
'include_dirs': [ '<(SHARED_INTERMEDIATE_DIR)' ],
|
|
||||||
'conditions': [
|
|
||||||
[ 'OS not in "mac linux"', {
|
|
||||||
'sources': [ 'src/unix/dtrace.c' ],
|
|
||||||
}],
|
|
||||||
[ 'OS=="linux"', {
|
|
||||||
'sources': [ '<(SHARED_INTERMEDIATE_DIR)/dtrace.o' ]
|
|
||||||
}],
|
|
||||||
],
|
|
||||||
}],
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -522,60 +498,5 @@
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
|
||||||
'target_name': 'uv_dtrace_header',
|
|
||||||
'type': 'none',
|
|
||||||
'conditions': [
|
|
||||||
[ 'uv_use_dtrace=="true"', {
|
|
||||||
'actions': [
|
|
||||||
{
|
|
||||||
'action_name': 'uv_dtrace_header',
|
|
||||||
'inputs': [ 'src/unix/uv-dtrace.d' ],
|
|
||||||
'outputs': [ '<(SHARED_INTERMEDIATE_DIR)/uv-dtrace.h' ],
|
|
||||||
'action': [ 'dtrace', '-h', '-xnolibs', '-s', '<@(_inputs)',
|
|
||||||
'-o', '<@(_outputs)' ],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
}],
|
|
||||||
],
|
|
||||||
},
|
|
||||||
|
|
||||||
# FIXME(bnoordhuis or tjfontaine) Unify this, it's extremely ugly.
|
|
||||||
{
|
|
||||||
'target_name': 'uv_dtrace_provider',
|
|
||||||
'type': 'none',
|
|
||||||
'conditions': [
|
|
||||||
[ 'uv_use_dtrace=="true" and OS not in "mac linux"', {
|
|
||||||
'actions': [
|
|
||||||
{
|
|
||||||
'action_name': 'uv_dtrace_o',
|
|
||||||
'inputs': [
|
|
||||||
'src/unix/uv-dtrace.d',
|
|
||||||
'<(PRODUCT_DIR)/obj.target/libuv<(uv_parent_path)src/unix/core.o',
|
|
||||||
],
|
|
||||||
'outputs': [
|
|
||||||
'<(PRODUCT_DIR)/obj.target/libuv<(uv_parent_path)src/unix/dtrace.o',
|
|
||||||
],
|
|
||||||
'action': [ 'dtrace', '-G', '-xnolibs', '-s', '<@(_inputs)',
|
|
||||||
'-o', '<@(_outputs)' ]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}],
|
|
||||||
[ 'uv_use_dtrace=="true" and OS=="linux"', {
|
|
||||||
'actions': [
|
|
||||||
{
|
|
||||||
'action_name': 'uv_dtrace_o',
|
|
||||||
'inputs': [ 'src/unix/uv-dtrace.d' ],
|
|
||||||
'outputs': [ '<(SHARED_INTERMEDIATE_DIR)/dtrace.o' ],
|
|
||||||
'action': [
|
|
||||||
'dtrace', '-C', '-G', '-s', '<@(_inputs)', '-o', '<@(_outputs)'
|
|
||||||
],
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}],
|
|
||||||
]
|
|
||||||
},
|
|
||||||
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user