Add (ok, fix) support for DTrace under OS X
(cherry picked from commit 8428a57184f542941d2c8c90e97d18e111a69dd2)
This commit is contained in:
parent
b3415187e9
commit
efacd7bfd0
|
@ -45,6 +45,7 @@ xorg-server.pc
|
||||||
xorg-server-*.tar.bz2
|
xorg-server-*.tar.bz2
|
||||||
xorg-server-*.tar.gz
|
xorg-server-*.tar.gz
|
||||||
stamp-h?
|
stamp-h?
|
||||||
|
dix/Xserver-dtrace.h
|
||||||
do-not-use-config.h
|
do-not-use-config.h
|
||||||
do-not-use-config.h.in
|
do-not-use-config.h.in
|
||||||
dix/dix.c
|
dix/dix.c
|
||||||
|
|
|
@ -85,12 +85,6 @@ dnl ISDN trace program named dtrace
|
||||||
AC_ARG_WITH(dtrace, AS_HELP_STRING([--with-dtrace=PATH],
|
AC_ARG_WITH(dtrace, AS_HELP_STRING([--with-dtrace=PATH],
|
||||||
[Enable dtrace probes (default: enabled if dtrace found)]),
|
[Enable dtrace probes (default: enabled if dtrace found)]),
|
||||||
[WDTRACE=$withval], [WDTRACE=auto])
|
[WDTRACE=$withval], [WDTRACE=auto])
|
||||||
dnl Darwin 9 has dtrace, but it doesn't support compilation into ELF...
|
|
||||||
if test "x$WDTRACE" = xauto; then
|
|
||||||
case $host_os in
|
|
||||||
darwin*) WDTRACE="no" ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
if test "x$WDTRACE" = "xyes" -o "x$WDTRACE" = "xauto" ; then
|
if test "x$WDTRACE" = "xyes" -o "x$WDTRACE" = "xauto" ; then
|
||||||
AC_PATH_PROG(DTRACE, [dtrace], [not_found], [$PATH:/usr/sbin])
|
AC_PATH_PROG(DTRACE, [dtrace], [not_found], [$PATH:/usr/sbin])
|
||||||
if test "x$DTRACE" = "xnot_found" ; then
|
if test "x$DTRACE" = "xnot_found" ; then
|
||||||
|
@ -1250,7 +1244,7 @@ AC_DEFINE(XSYNC, 1, [Support XSync extension])
|
||||||
AC_DEFINE(XCMISC, 1, [Support XCMisc extension])
|
AC_DEFINE(XCMISC, 1, [Support XCMisc extension])
|
||||||
AC_DEFINE(BIGREQS, 1, [Support BigRequests extension])
|
AC_DEFINE(BIGREQS, 1, [Support BigRequests extension])
|
||||||
|
|
||||||
if test "x$WDTRACE" != "xno" ; then
|
if test "x$WDTRACE" != "xno" && test "x$XQUARTZ" = "xno"; then
|
||||||
DIX_LIB='$(top_builddir)/dix/dix.O'
|
DIX_LIB='$(top_builddir)/dix/dix.O'
|
||||||
OS_LIB='$(top_builddir)/os/os.O'
|
OS_LIB='$(top_builddir)/os/os.O'
|
||||||
else
|
else
|
||||||
|
|
|
@ -54,6 +54,7 @@ Xserver-dtrace.h: $(srcdir)/Xserver.d
|
||||||
$(DTRACE) -C -h -o $@ -s $(srcdir)/Xserver.d \
|
$(DTRACE) -C -h -o $@ -s $(srcdir)/Xserver.d \
|
||||||
|| cp Xserver-dtrace.h.in $@
|
|| cp Xserver-dtrace.h.in $@
|
||||||
|
|
||||||
|
if !XQUARTZ
|
||||||
# Generate dtrace object code for probes in libdix
|
# Generate dtrace object code for probes in libdix
|
||||||
dtrace-dix.o: $(top_srcdir)/dix/Xserver.d $(am_libdix_la_OBJECTS)
|
dtrace-dix.o: $(top_srcdir)/dix/Xserver.d $(am_libdix_la_OBJECTS)
|
||||||
$(DTRACE) -G -C -o $@ -s $(top_srcdir)/dix/Xserver.d $(am_libdix_la_OBJECTS:%.lo=.libs/%.o)
|
$(DTRACE) -G -C -o $@ -s $(top_srcdir)/dix/Xserver.d $(am_libdix_la_OBJECTS:%.lo=.libs/%.o)
|
||||||
|
@ -63,6 +64,7 @@ noinst_PROGRAMS = dix.O
|
||||||
dix.O: dtrace-dix.o $(am_libdix_la_OBJECTS)
|
dix.O: dtrace-dix.o $(am_libdix_la_OBJECTS)
|
||||||
ld -r -o $@ $(am_libdix_la_OBJECTS:%.lo=.libs/%.o)
|
ld -r -o $@ $(am_libdix_la_OBJECTS:%.lo=.libs/%.o)
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
dix.c:
|
dix.c:
|
||||||
touch $@
|
touch $@
|
||||||
|
|
|
@ -29,8 +29,13 @@
|
||||||
/*
|
/*
|
||||||
* Xserver dtrace provider definition
|
* Xserver dtrace provider definition
|
||||||
*/
|
*/
|
||||||
|
#ifdef __APPLE__
|
||||||
|
#define string char *
|
||||||
|
#define pid_t uint32_t
|
||||||
|
#define zoneid_t uint32_t
|
||||||
|
#else
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
provider Xserver {
|
provider Xserver {
|
||||||
/* reqType, data, length, client id, request buffer */
|
/* reqType, data, length, client id, request buffer */
|
||||||
|
|
|
@ -41,6 +41,7 @@ endif
|
||||||
EXTRA_DIST = $(SECURERPC_SRCS) $(INTERNALMALLOC_SRCS) \
|
EXTRA_DIST = $(SECURERPC_SRCS) $(INTERNALMALLOC_SRCS) \
|
||||||
$(XDMCP_SRCS) $(STRLCAT_SRCS)
|
$(XDMCP_SRCS) $(STRLCAT_SRCS)
|
||||||
|
|
||||||
|
if !XQUARTZ
|
||||||
if XSERVER_DTRACE
|
if XSERVER_DTRACE
|
||||||
# Generate dtrace object code for probes in libos & libdix
|
# Generate dtrace object code for probes in libos & libdix
|
||||||
dtrace.o: $(top_srcdir)/dix/Xserver.d $(am_libos_la_OBJECTS)
|
dtrace.o: $(top_srcdir)/dix/Xserver.d $(am_libos_la_OBJECTS)
|
||||||
|
@ -51,6 +52,7 @@ noinst_PROGRAMS = os.O
|
||||||
os.O: dtrace.o $(am_libos_la_OBJECTS)
|
os.O: dtrace.o $(am_libos_la_OBJECTS)
|
||||||
ld -r -o $@ dtrace.o .libs/*.o
|
ld -r -o $@ dtrace.o .libs/*.o
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
os.c:
|
os.c:
|
||||||
touch $@
|
touch $@
|
||||||
|
|
Loading…
Reference in New Issue