summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Byer <bbyer@freedesktop.org>2009-09-27 10:35:53 -0700
committerJeremy Huddleston <jeremyhu@freedesktop.org>2009-09-27 23:34:28 -0700
commitb49dba33f94b51ba9a14803f0d81ccde2cb778f8 (patch)
tree7699fc023708c3b763518fe25083a6f3aa3b6e90
parentcf2e3312cff3f341e9edba8c321a4ca7ffd8748e (diff)
Add (ok, fix) support for DTrace under OS X
(cherry picked from commit 8428a57184f542941d2c8c90e97d18e111a69dd2)
-rw-r--r--.gitignore1
-rw-r--r--configure.ac8
-rw-r--r--dix/Makefile.am2
-rw-r--r--dix/Xserver.d7
-rw-r--r--os/Makefile.am2
5 files changed, 12 insertions, 8 deletions
diff --git a/.gitignore b/.gitignore
index 3fb73f061..3a8fe501d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -45,6 +45,7 @@ xorg-server.pc
45xorg-server-*.tar.bz2 45xorg-server-*.tar.bz2
46xorg-server-*.tar.gz 46xorg-server-*.tar.gz
47stamp-h? 47stamp-h?
48dix/Xserver-dtrace.h
48do-not-use-config.h 49do-not-use-config.h
49do-not-use-config.h.in 50do-not-use-config.h.in
50dix/dix.c 51dix/dix.c
diff --git a/configure.ac b/configure.ac
index 422ef0bf7..7d0abca8f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -85,12 +85,6 @@ dnl ISDN trace program named dtrace
85AC_ARG_WITH(dtrace, AS_HELP_STRING([--with-dtrace=PATH], 85AC_ARG_WITH(dtrace, AS_HELP_STRING([--with-dtrace=PATH],
86 [Enable dtrace probes (default: enabled if dtrace found)]), 86 [Enable dtrace probes (default: enabled if dtrace found)]),
87 [WDTRACE=$withval], [WDTRACE=auto]) 87 [WDTRACE=$withval], [WDTRACE=auto])
88dnl Darwin 9 has dtrace, but it doesn't support compilation into ELF...
89if test "x$WDTRACE" = xauto; then
90 case $host_os in
91 darwin*) WDTRACE="no" ;;
92 esac
93fi
94if test "x$WDTRACE" = "xyes" -o "x$WDTRACE" = "xauto" ; then 88if test "x$WDTRACE" = "xyes" -o "x$WDTRACE" = "xauto" ; then
95 AC_PATH_PROG(DTRACE, [dtrace], [not_found], [$PATH:/usr/sbin]) 89 AC_PATH_PROG(DTRACE, [dtrace], [not_found], [$PATH:/usr/sbin])
96 if test "x$DTRACE" = "xnot_found" ; then 90 if test "x$DTRACE" = "xnot_found" ; then
@@ -1250,7 +1244,7 @@ AC_DEFINE(XSYNC, 1, [Support XSync extension])
1250AC_DEFINE(XCMISC, 1, [Support XCMisc extension]) 1244AC_DEFINE(XCMISC, 1, [Support XCMisc extension])
1251AC_DEFINE(BIGREQS, 1, [Support BigRequests extension]) 1245AC_DEFINE(BIGREQS, 1, [Support BigRequests extension])
1252 1246
1253if test "x$WDTRACE" != "xno" ; then 1247if test "x$WDTRACE" != "xno" && test "x$XQUARTZ" = "xno"; then
1254 DIX_LIB='$(top_builddir)/dix/dix.O' 1248 DIX_LIB='$(top_builddir)/dix/dix.O'
1255 OS_LIB='$(top_builddir)/os/os.O' 1249 OS_LIB='$(top_builddir)/os/os.O'
1256else 1250else
diff --git a/dix/Makefile.am b/dix/Makefile.am
index 13e5dedd7..23fe46007 100644
--- a/dix/Makefile.am
+++ b/dix/Makefile.am
@@ -54,6 +54,7 @@ Xserver-dtrace.h: $(srcdir)/Xserver.d
54 $(DTRACE) -C -h -o $@ -s $(srcdir)/Xserver.d \ 54 $(DTRACE) -C -h -o $@ -s $(srcdir)/Xserver.d \
55 || cp Xserver-dtrace.h.in $@ 55 || cp Xserver-dtrace.h.in $@
56 56
57if !XQUARTZ
57# Generate dtrace object code for probes in libdix 58# Generate dtrace object code for probes in libdix
58dtrace-dix.o: $(top_srcdir)/dix/Xserver.d $(am_libdix_la_OBJECTS) 59dtrace-dix.o: $(top_srcdir)/dix/Xserver.d $(am_libdix_la_OBJECTS)
59 $(DTRACE) -G -C -o $@ -s $(top_srcdir)/dix/Xserver.d .libs/*.o 60 $(DTRACE) -G -C -o $@ -s $(top_srcdir)/dix/Xserver.d .libs/*.o
@@ -63,6 +64,7 @@ noinst_PROGRAMS = dix.O
63dix.O: dtrace-dix.o $(am_libdix_la_OBJECTS) 64dix.O: dtrace-dix.o $(am_libdix_la_OBJECTS)
64 ld -r -o $@ .libs/*.o 65 ld -r -o $@ .libs/*.o
65endif 66endif
67endif
66 68
67dix.c: 69dix.c:
68 touch $@ 70 touch $@
diff --git a/dix/Xserver.d b/dix/Xserver.d
index e4c9b8320..cea97e908 100644
--- a/dix/Xserver.d
+++ b/dix/Xserver.d
@@ -29,8 +29,13 @@
29/* 29/*
30 * Xserver dtrace provider definition 30 * Xserver dtrace provider definition
31 */ 31 */
32 32#ifdef __APPLE__
33#define string char *
34#define pid_t uint32_t
35#define zoneid_t uint32_t
36#else
33#include <sys/types.h> 37#include <sys/types.h>
38#endif
34 39
35provider Xserver { 40provider Xserver {
36 /* reqType, data, length, client id, request buffer */ 41 /* reqType, data, length, client id, request buffer */
diff --git a/os/Makefile.am b/os/Makefile.am
index f89da6ba2..9ce8ff274 100644
--- a/os/Makefile.am
+++ b/os/Makefile.am
@@ -41,6 +41,7 @@ endif
41EXTRA_DIST = $(SECURERPC_SRCS) $(INTERNALMALLOC_SRCS) \ 41EXTRA_DIST = $(SECURERPC_SRCS) $(INTERNALMALLOC_SRCS) \
42 $(XDMCP_SRCS) $(STRLCAT_SRCS) 42 $(XDMCP_SRCS) $(STRLCAT_SRCS)
43 43
44if !XQUARTZ
44if XSERVER_DTRACE 45if XSERVER_DTRACE
45# Generate dtrace object code for probes in libos & libdix 46# Generate dtrace object code for probes in libos & libdix
46dtrace.o: $(top_srcdir)/dix/Xserver.d $(am_libos_la_OBJECTS) 47dtrace.o: $(top_srcdir)/dix/Xserver.d $(am_libos_la_OBJECTS)
@@ -51,6 +52,7 @@ noinst_PROGRAMS = os.O
51os.O: dtrace.o $(am_libos_la_OBJECTS) 52os.O: dtrace.o $(am_libos_la_OBJECTS)
52 ld -r -o $@ dtrace.o .libs/*.o 53 ld -r -o $@ dtrace.o .libs/*.o
53endif 54endif
55endif
54 56
55os.c: 57os.c:
56 touch $@ 58 touch $@