diff options
author | Ben Byer <bbyer@freedesktop.org> | 2009-09-27 10:35:53 -0700 |
---|---|---|
committer | Jeremy Huddleston <jeremyhu@freedesktop.org> | 2009-09-27 23:34:28 -0700 |
commit | b49dba33f94b51ba9a14803f0d81ccde2cb778f8 (patch) | |
tree | 7699fc023708c3b763518fe25083a6f3aa3b6e90 | |
parent | cf2e3312cff3f341e9edba8c321a4ca7ffd8748e (diff) |
Add (ok, fix) support for DTrace under OS X
(cherry picked from commit 8428a57184f542941d2c8c90e97d18e111a69dd2)
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | configure.ac | 8 | ||||
-rw-r--r-- | dix/Makefile.am | 2 | ||||
-rw-r--r-- | dix/Xserver.d | 7 | ||||
-rw-r--r-- | os/Makefile.am | 2 |
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 | |||
45 | xorg-server-*.tar.bz2 | 45 | xorg-server-*.tar.bz2 |
46 | xorg-server-*.tar.gz | 46 | xorg-server-*.tar.gz |
47 | stamp-h? | 47 | stamp-h? |
48 | dix/Xserver-dtrace.h | ||
48 | do-not-use-config.h | 49 | do-not-use-config.h |
49 | do-not-use-config.h.in | 50 | do-not-use-config.h.in |
50 | dix/dix.c | 51 | dix/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 | |||
85 | AC_ARG_WITH(dtrace, AS_HELP_STRING([--with-dtrace=PATH], | 85 | AC_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]) |
88 | dnl Darwin 9 has dtrace, but it doesn't support compilation into ELF... | ||
89 | if test "x$WDTRACE" = xauto; then | ||
90 | case $host_os in | ||
91 | darwin*) WDTRACE="no" ;; | ||
92 | esac | ||
93 | fi | ||
94 | if test "x$WDTRACE" = "xyes" -o "x$WDTRACE" = "xauto" ; then | 88 | if 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]) | |||
1250 | AC_DEFINE(XCMISC, 1, [Support XCMisc extension]) | 1244 | AC_DEFINE(XCMISC, 1, [Support XCMisc extension]) |
1251 | AC_DEFINE(BIGREQS, 1, [Support BigRequests extension]) | 1245 | AC_DEFINE(BIGREQS, 1, [Support BigRequests extension]) |
1252 | 1246 | ||
1253 | if test "x$WDTRACE" != "xno" ; then | 1247 | if 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' |
1256 | else | 1250 | else |
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 | ||
57 | if !XQUARTZ | ||
57 | # Generate dtrace object code for probes in libdix | 58 | # Generate dtrace object code for probes in libdix |
58 | dtrace-dix.o: $(top_srcdir)/dix/Xserver.d $(am_libdix_la_OBJECTS) | 59 | dtrace-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 | |||
63 | dix.O: dtrace-dix.o $(am_libdix_la_OBJECTS) | 64 | dix.O: dtrace-dix.o $(am_libdix_la_OBJECTS) |
64 | ld -r -o $@ .libs/*.o | 65 | ld -r -o $@ .libs/*.o |
65 | endif | 66 | endif |
67 | endif | ||
66 | 68 | ||
67 | dix.c: | 69 | dix.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 | ||
35 | provider Xserver { | 40 | provider 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 | |||
41 | EXTRA_DIST = $(SECURERPC_SRCS) $(INTERNALMALLOC_SRCS) \ | 41 | EXTRA_DIST = $(SECURERPC_SRCS) $(INTERNALMALLOC_SRCS) \ |
42 | $(XDMCP_SRCS) $(STRLCAT_SRCS) | 42 | $(XDMCP_SRCS) $(STRLCAT_SRCS) |
43 | 43 | ||
44 | if !XQUARTZ | ||
44 | if XSERVER_DTRACE | 45 | if XSERVER_DTRACE |
45 | # Generate dtrace object code for probes in libos & libdix | 46 | # Generate dtrace object code for probes in libos & libdix |
46 | dtrace.o: $(top_srcdir)/dix/Xserver.d $(am_libos_la_OBJECTS) | 47 | dtrace.o: $(top_srcdir)/dix/Xserver.d $(am_libos_la_OBJECTS) |
@@ -51,6 +52,7 @@ noinst_PROGRAMS = os.O | |||
51 | os.O: dtrace.o $(am_libos_la_OBJECTS) | 52 | os.O: dtrace.o $(am_libos_la_OBJECTS) |
52 | ld -r -o $@ dtrace.o .libs/*.o | 53 | ld -r -o $@ dtrace.o .libs/*.o |
53 | endif | 54 | endif |
55 | endif | ||
54 | 56 | ||
55 | os.c: | 57 | os.c: |
56 | touch $@ | 58 | touch $@ |